你好, 我是Alan, 今天来给大家介绍一下我们程序员应该去关注的三个软实力, 它们分别是业务分析能力,业务建模能力和任务分解能力。
我发现在现在很多的程序员, 有一种技术至上思维, 非常去关注自己的技术硬实力, 比如是否精通某某框架, 精通某某数据库, 如果我们将写代码比作是一张图的话, 那这些基础技术就是图中的某些点, 而我们知道图不仅仅只是由这些点去构成, 还有边, 但是很多人只看到了这些点。
其次要明白技术的本质是做出更好的菜, 而不是去耍好菜刀, 只会耍菜刀的这种思维会导致技术能力不断提升, 但写出来的代码依然稀烂, 最后变成一个人自嗨, "啊呀, 我技术这样牛, 为什么给我裁了"。
我们在保持技术实力的同时, 更要去提高自己的软实力, 而业务分析,建模,架构, 就是我们程序员的软实力, 因为这种软实力可以帮助我们, 定义更好的问题、抽象出来更好的模型、以及设计出更好的系统, 最终更好的去服务我们的业务对象。
首先业务分析能力使我们更好的去理解和定义问题, 因为很多时候我们往往没有想好问题就开始去做, 最终导致引入很多不必要的复杂度, 比如明明可以使用某个编程语言的库就解决的问题, 但是因为问题没有理解好, 非要去造一个DSL去解决, 导致沟通成本, 维护成本急剧上升。
其次是建模能力, 建模能力就是要求你从业务问题出发, 建立与业务强相关的领域模型, 并将模型与软件相关联。
说完了业务分析和建模能力, 然后就是任务分解能力, 也就是所谓的架构, 架构就是系统中存在多少个组件, 这些组件之间如何进行交互。比如OSI七层模型就是一种分层架构。
架构同样是衡量一个程序员有没有大局观的东西, 你会发现在一个非常大的系统中, 我们是不会单独拿一段代码看, 因为没有任何意义,我们只会关注如何做到全局最优, 然后将全局拆分到每个组件上, 最终实现局部最优。
通过分析, 建模, 架构, 我们就会对我们需要去做的业务有着更加的深刻的认识, 这样才能回馈到我们的编码测试上。
好了说了这么多, 只是希望我们程序员不要只关注自己的技术硬实力, 也要多多关注那些软实力, 最后如果你觉得这篇文章对你有帮助的话, 可以给我点个赞。

