最近与同仁讲一个简单的功能,咱们过去的项目或系统可能开发过不少次了,当下须要反思软件设计怎么才能作得更好,这样咱们本身才能成长。若是软件设计都作很差,更作很差软件架构。 若是你重复一次又一次在作与过去相同的东西,有没有意义? 没有成长,等于浪费时间。如今产品经理都须要关注用户增加的设计了,思考你如何得到成长。html
什么叫“重复性劳动”?数据库
你也许会觉得,重复性劳动是指那些主要以体力完成的工做,送外卖、发传单,或者,掺杂少部分脑力的工做。其实不是,即便是某些高强度的脑力工做,依然算是重复性劳动。好比,被你们认为重复性较低的销售,其实时间长了,也会按固定套路,把销售流程当作例行公事走完。日复一日的重复性劳动,工做愈来愈熟练,但成长愈来愈缓慢。编程
反复不断地重复写代码去解决一样的编程问题,这就是在作彻底相同的事,除非新的约束和变化给你带来了新的挑战,你只能从第一次的经验中有所收获,而从第二次开始基本就是简单地重复了。若是你想要作得更优秀,重复实践是远远不够的。你必须在实践中增长更多的难度和挑战。微信
一般咱们软件设计时须要考虑的:网络
- 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.
软件工匠架构
再回顾软件工艺宣言,笔者不少年前已在上面签名:运维
不只要让软件工做,更要精益求精。微服务
不只能够响应变化,更要稳步增长价值。性能
不只要有个体与交互,更要造成专业人员的社区。学习
不只要与客户合做,更要创建卓有成效的伙伴关系。
也就是说,左项当然值得追求,右项一样不可或缺。


------------------------------------------------------------------
今天先到这儿,但愿对您技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考做用 , 您可能感兴趣的文章:
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与我的目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变
若有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注个人微信订阅号:
![MegadotnetMicroMsg_thumb1_thumb1_thu[2] MegadotnetMicroMsg_thumb1_thumb1_thu[2]](http://static.javashuo.com/static/loading.gif)
做者:Petter Liu
出处:http://www.cnblogs.com/wintersun/ 本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。 该文章也同时发布在个人独立博客中-Petter Liu Blog。