当前位置: 移动技术网 > IT编程>软件设计>面向对象 > 关于软件设计与工匠精神

关于软件设计与工匠精神

2018年09月10日  | 移动技术网IT编程  | 我要评论

      最近与同仁讲一个简单的功能,我们过去的项目或系统可能开发过很多次了,当下需要反思软件设计怎么才能做得更好,这样我们自己才能成长。如果软件设计都做不好,更做不好软件架构。 如果你重复一次又一次在做与过去相同的东西,有没有意义? 没有成长,等于浪费时间。现在产品经理都需要关注用户增长的设计了,思考你如何获得成长。

什么叫“重复性劳动”?

      你也许会以为,重复性劳动是指那些主要以体力完成的工作,送外卖、发传单,或者,掺杂少部分脑力的工作。其实不是,即使是某些高强度的脑力工作,依然算是重复性劳动。比如,被大家认为重复性较低的销售,其实时间长了,也会按固定套路,把销售流程当做例行公事走完。日复一日的重复性劳动,工作越来越熟练,但成长越来越缓慢。

      反复不断地重复写代码去解决同样的编程问题,这就是在做完全相同的事,除非新的约束和变化给你带来了新的挑战,你只能从第一次的经验中有所收获,而从第二次开始基本就是简单地重复了。如果你想要做得更优秀,重复实践是远远不够的。你必须在实践中增加更多的难度挑战

通常我们软件设计时需要考虑的:

    • compatibility - the software is able to operate with other products that are designed for interoperability with another product. for example, a piece of software may be backward-compatible with an older version of itself.
    • extensibility - new capabilities can be added to the software without major changes to the underlying architecture.
    • modularity - the resulting software comprises well defined, independent components which leads to better maintainability. the components could be then implemented and tested in isolation before being integrated to form a desired software system. this allows division of work in a software development project.
    • fault-tolerance - the software is resistant to and able to recover from component failure.
    • maintainability - a measure of how easily bug fixes or functional modifications can be accomplished. high maintainability can be the product of modularity and extensibility.
    • reliability (software durability) - the software is able to perform a required function under stated conditions for a specified period of time.
    • reusability - the ability to use some or all of the aspects of the preexisting software in other projects with little to no modification.
    • robustness - the software is able to operate under stress or tolerate unpredictable or invalid input. for example, it can be designed with resilience to low memory conditions.
    • security - the software is able to withstand and resist hostile acts and influences.
    • usability - the software user interface must be usable for its target user/audience. default values for the parameters must be chosen so that they are a good choice for the majority of the users.[5]
    • performance - the software performs its tasks within a time-frame that is acceptable for the user, and does not require too much memory.
    • portability - the software should be usable across a number of different conditions and environments.
    • scalability - the software adapts well to increasing data or number of users.

软件工匠

再回顾,笔者很多年前已在上面签名:

不仅要让软件工作,更要精益求精。

不仅可以响应变化,更要稳步增加价值。

不仅要有个体与交互,更要形成专业人员的社区。

不仅要与客户合作,更要建立卓有成效的伙伴关系。

也就是说,左项固然值得追求,右项同样不可或缺。

------------------------------------------------------------------

今天先到这儿,希望对您技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章:































如有想了解更多软件设计与架构, 系统it,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

megadotnetmicromsg_thumb1_thumb1_thu[2]

作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-petter liu blog。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网