软件工程有没有帮助?

2019-12-19 14:31:37 +08:00
 raawaa
我本职工作和程序设计毫不相关。但编程是自己的业余爱好。

目前发现自己的瓶颈是:软件写不大,只能写点很小的脚本工具。一旦有复杂一点的创意就不知道从何入手,如何设计。

自己现在开始看“软件工程”方面的书(包含面向对象设计、UML 之类的内容),不知道是不是有帮助。

PS:这里的 [软件工程] 是指软件工程学,不是指软件工程这门专业。
2475 次点击
所在节点    程序员
22 条回复
richzhu
2019-12-19 14:33:09 +08:00
老套路,找个流行度较高的框架,写个 个人网站,文章后台管理,评论,浏览数,后台权限,功能都要有
写好之后 你就升级了
dreamerlv3ex
2019-12-19 14:38:08 +08:00
写个 V2EX
kkniub
2019-12-19 14:47:50 +08:00
都是些概念性的东西, 不落实到代码上几乎等于白看
不如实在点, 定下一门语言, 在找个现有的项目去复现一次
等你有代码积累后再回去看这些, 才能有切实收获
orzorzorzorz
2019-12-19 15:26:36 +08:00
没啥帮助。你说的“不知道如何入手”是抽象能力鶸,多想想怎么拆分就好了,我估计只能靠时间堆。
Immortal
2019-12-19 15:28:08 +08:00
老哥这头像很好认 i3 同好(狗头)
Immortal
2019-12-19 15:30:47 +08:00
跑题了
软件工程我自己觉得有点类似"内功"的东西
很多时候我们自己写代码会觉得学了很多算法 设计模式都用不上
我感觉除了学习这些 还需要提高自己的抽象能力 所以有时候感觉遇到的问题和知道的解决方案对不上号
系统架构的设计 模块的解耦 甚至落地到实际需求 都会潜移默化的用到你所学的这些
关键很多时候
### 自己没意识到自己用上了某种设计模式
### 抽象能力不够
wangcansun
2019-12-19 15:36:12 +08:00
软件工程很重要!
我一直觉得:
计算机技术(语言、框架)等 决定你能做什么
软件工程 决定怎么做得更好。

多想想
0. 代码是先给人看的,再是运行的
1. 高内聚,低耦合
2. 可拓展性
3. 可维护性
4. 看到 1 要想到 10,看到 10 想到 100. 不过渡设计,但是要提前设计。
...

多写写
0. 在写代码的过程中不断的思考,这样写以后维护起来是否容易,是否能够兼容后面的功能
1. 看看别人的例子,想想别人为什么那么写,是否有可以改进的地方,然后再自己写试试
...


项目不知道怎么开始?
从最简单的功能开始实现,一步一步迭代。每一步都要明确自己的目标,想要解决的的问题是什么,弄清楚主次矛盾。
willvvvvv1
2019-12-19 15:40:16 +08:00
软件工程,建议你晚点看。
先看看别人一些优秀的代码怎么写的,照葫芦画瓢多了,自然就有自己的想法了。
这时候再去看软件工程,绝对会收益更大。
Raymon111111
2019-12-19 15:42:27 +08:00
当然是非常有帮助的

但是这门课在大学学的话是完全没用的
Baelish725
2019-12-19 15:46:35 +08:00
软件工程是软件开发项目组织上那些问题,跟开发能力没啥关系。

小项目用不上,敏捷就完了,不知道怎么做事因为知识的广度还不够,多看多学习。
vance123
2019-12-19 15:48:39 +08:00
NYGK
2019-12-19 16:00:27 +08:00
软件工程很重要,但是好像跟你的困境没多大关系。
所以个人感觉你现在当务之急是“如何把一个大的软件拆分成多个小的、简单的模块”(抽象思维、或者有人说计算思维);而不是“如何管理已经被拆得乱七八糟的模块,或者将来会出现的乱七八糟的模块”(软件工程要解决的最基本最现实的问题就是这个,当然也不仅限于这个问题)。
所以,可能你看看数据结构与算法的书?或者看看别的工程是如何拆分功能的?
raawaa
2019-12-19 16:02:13 +08:00
@Immortal 感觉化成灰你都认得我了,哈哈。
Immortal
2019-12-19 16:05:29 +08:00
@raawaa
我已经转战 bspwm 了
bspwm 比 i3 更加解耦
快捷键的绑定和屏幕渲染是分开的 i3 是一体的
这个和你问的设计模式也有点擦边
raawaa
2019-12-19 16:09:41 +08:00
@orzorzorzorz
@NYGK
两位的建议好像比较类似,觉得说到了我的心坎里。
我的问题的确就是“不知道如何把软件拆分成不同的模块”。看来我应该先学习一下面向对象设计的基本原则,然后实践练习。
刚刚下了一本《深入浅出面向对象分析与设计》
shm7
2019-12-19 16:11:25 +08:00
这就对了。复杂度控制是编码到一定程度一定会碰到的问题,现在的面向对象、各种规范、原则,其实都是都为了控制代码复杂度,当然有些是越控制越乱,哈哈。
raawaa
2019-12-19 16:13:09 +08:00
@Immortal 我已经转战 win10。上有老下有小,中间还有个如狼似虎的老婆,时间上折腾不起了。
hehheh
2019-12-20 07:59:22 +08:00
设计模式很重要,可是看书没什么用。

还是先把概念过一遍,工厂单例等等。然后找一个大型软件过一遍用 debugger 看看。其实这样差的也挺远的,不过除非你参加大型系统的开发,不然也没法
mikulch
2019-12-20 14:07:39 +08:00
挺有兴趣的,老哥本职工作做啥的呢?
zjq123
2020-02-13 12:27:19 +08:00
楼主老家哪? 头像眼熟

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/630512

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX