想讨论一下工程能力,比如写大型项目与脚本的思路差别。

2020-02-16 11:27:56 +08:00
 calmzhu
自己本身做运维的,主要工作是开发...最初写代码都是脚本工具居多。
现在开始用 springboot/django + vue/react 等轮子搭建平台。
但是感觉还是按脚本的思路写的。想理清一下软件工程需要注意的点。

在代码 /算法等等之外,还有哪些好的实践需要注意的呢,有三个问题

脚本代码思路问题: 拿到需求,简单理下思路,就直接写代码了。

软件工程项目: 拿到一个需求,在开始写代码之前,大家会做哪些准备?

有些简单通用的大家已经成为潜意识,或者在框架里面自带的不用操心的也算。之前看提过关系原型设计,是指什么

一个好的软件工程需要包括哪些实践呢?

下么列举的这些算不算,还包括哪些

4638 次点击
所在节点    程序员
33 条回复
calmzhu
2020-02-16 18:27:28 +08:00
@orzorzorzorz

谢谢回复~

又收集到两点

- 可行性
- 对业务的影响,比如是否支持促销的大压力(这个和之前提到到的性能 /扩展性是不同的。得让业务知道流量到什么级别系统会崩,促销打个招呼)

人际这块现阶段无解。但是我认为软件工程会最终作为一种减少内耗的方式推广成为社会管理工程。从这个角度的话,要明确两点
- 这个项目哪些内部员工,哪些外部客户会受益
- 这个项目哪些内部员工,哪些外部客户会受损
这时候才能作出可接受的利益平衡。

作为底层搬砖工,我对脏活的定义是
假设绩效有用
1. 这件事要费不少时间,才能合格
2. 这件事做好后,我的绩效不会有任何增益
3. 这件事没做好,非常影响自己在他人严重的价值。甚至扣绩效。
这种脏活,能躲就躲。
Cbdy
2020-02-16 18:31:09 +08:00
先把核心功能 /主流程 /核心算法跑通,然后慢慢改
sicauxeon
2020-02-16 20:33:53 +08:00
比较大的工程除了项目本身实现上的困难外,也需要关注建模的难点。

首先,实现上需要注重代码质量,有没有 code review,项目是否接入单测,单测的质量,ci、cd 等基础设施。

项目的领域模型是否科学合理,这是架构师层面关注的。

互联网产品关注业务的数据,业务产生的数据如何高效接入内部的大数据平台,供数据分析和运营同学使用。是否接入了监控中心,服务是否有完善的告警及时通知到开发。

估计项目的流量,以及未来的增长,评估机器的开销。是否已经有在使用的缓存、消息队列、存储、LB 等资源,机房可供扩容的机器数量。这里可以对服务压测,监控整条链路上机器的水位,服务的平响。

然后你列举的代码注释、日志、异常处理看看其他公司的 best practice,比如阿里的那份。
AilF
2020-02-16 21:19:54 +08:00
学习下楼上各位大佬
bxqqq
2020-02-16 22:17:22 +08:00
补充一点;
你写一半发现东西 model 数据没有设计好,说明你开始没有想清楚,设计文档是让你想清楚的,但是这是手段,你如果能想清楚没有文档也没问题,同理,你想清楚了,代码也只是实现手段。 (要注意数据(结构)之间的关系,你可以想一下,它们合理的交互对工程意味着什么)。
nightwitch
2020-02-16 23:08:10 +08:00
补充一点
分割技术难点,做好调研,不要重复发明轮子或者使用不适合自己工程的轮子
murmur
2020-02-17 07:41:27 +08:00
大型项目最重要的不是设计,是需求把控,什么先做,什么能做,什么坚决不做,再牛逼的设计扛不住做一半大改需求
arjen
2020-02-17 10:10:53 +08:00
@otakustay 老哥是 EE 的吗?
zichen
2020-02-17 10:44:58 +08:00
@CoderGeek +1,我现在写设计文档这些基本都是必写的。
zichen
2020-02-17 10:46:46 +08:00
@otakustay 这里面绿的不少啊,工程能力地图分应该不低,晋升有望。
otakustay
2020-02-17 11:29:37 +08:00
@zichen
@arjen
地图本来就是我开发的,能差吗……
zjsxwc
2020-02-17 18:51:00 +08:00
天天重构,看着不爽就重构,反正就是尽量按照 solid 原则写
LDa
2020-03-04 17:23:13 +08:00
上班三年最深的感触就是
大型项目 设计优先、文档优先

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

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

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

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

© 2021 V2EX