惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Securelist
AI
AI
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
T
Threat Research - Cisco Blogs
T
Tenable Blog
G
GRAHAM CLULEY
腾讯CDC
L
Lohrmann on Cybersecurity
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
The Cloudflare Blog
P
Proofpoint News Feed
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
AWS News Blog
AWS News Blog
D
Docker
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Latest news
Latest news
L
LINUX DO - 热门话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
L
LangChain Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Blog — PlanetScale
Blog — PlanetScale
云风的 BLOG
云风的 BLOG
P
Privacy International News Feed
Cloudbric
Cloudbric
Attack and Defense Labs
Attack and Defense Labs
量子位
爱范儿
爱范儿
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
V
Vulnerabilities – Threatpost
Schneier on Security
Schneier on Security
J
Java Code Geeks
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
N
Netflix TechBlog - Medium
博客园 - 司徒正美
I
InfoQ
WordPress大学
WordPress大学
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News

博客园 - 旴江老段

委托和事件的区别 如何开发和维能hold住全场的软件 SNOOP 开发WPF的好工具 被遗忘的事物 前台线程和后台线程(Foreground and Background Threads) runtime binding policy Checking space used in a database AsyncCallback方法和主线程怎么同步呢? Remoting Practice Sample Using Custom Assemblies with Reports 为什么32位的CPU?为什么32位的CPU只能支持4G的内存呢? 学习SSL和certificate的好网页 Wix Upgrade怎么判断是否更新 学WIX的好网站 SELECT @local_variable (Transact-SQL) sql server try catch and transaction的几个要点 使SQL关键字变大写的小工具 Assert.AreEqual .net 异步调用机制
什么样的软件才能hold住全场
旴江老段 · 2011-12-20 · via 博客园 - 旴江老段

什么样的软件才能hold住全场? 那必须是好的软件。那么我们首先要讨论什么是好的软件。

然后才能讨论如何开发和维护好的软件。 

那么,什么样的软件是好软件?不同的相关者,会有不同的答案。

首先,对客户来说,有几点,

  • 容易使用 

这个需要好的UI设计。

  • 反应快

反应快就是是性能好。这个需要好的算法,好的设计,和好的设备。

  • 稳定

什么样的代码会稳定?现在公司里面,经过各种测试,基本上就标志的这个软件产品比较稳定了。

 对于开发人员来说,软件设计是最重要的。

这个不同的颗粒会有不同想法。

从最小的颗粒,方法,大小适中的方法划分,很是必要。我们经常可以看到长度达几百行甚至一两千行的代码。这种代码总是让我们头疼。深这个大概包括,良好的接口和类设计。如果很长,而且没有注释,那就更糟糕了。当然我们说方法最小不是说没有更小的,当然还有更小的颗粒。只是我觉得有些规则,比如说命名规范,大概大部分人都知道。虽然我们工作中还是会碰到有些人写的ABC,123这样的变量名。还有语句不要写太长,写太长了,自己都晕了,对不。

  • 接口和类的设计。

对于这点,很多人都只注重技术,而不关注业务,我个人觉得,离开的对业务和系统的了解,接口和类设计只是空中楼阁。然后就是面向对象的概念。那些类的成员是封闭的,那些成员是开放的。每个类的注释是必须的。

  • 组件的设计

这里的组件的概念就是一个assembly, 或者solution里面的一个Project. 这里的设计我想主要是提供给调用者一套类,有些时候这些类可以画成很好的类图。组件就需要文档了,否则在大的项目里面,几百个组件,根本搞不清这些组件分别是干什么的。当需要开发一个新功能的时候,也根本不知道时候有现成的组件和类可以调用,导致很多不同的组件里面有相似的类。

  • 数据库的设计 

好的逻辑设计,严格的约束,保证数据的完整性。好的物理设计,索引,表的分割,以及好的硬件。这些的软件开发人员来说都是至关重要的。

最后别忘了老板, 没有老板的投资,很多软件都诞生不了。老板当然想要的就是挣钱的软件。对于老板来说,大概有几点,

  • 能按期完成的软件
  • 高的客户满意度
  • 可控的成本 

 作为一个工程师老板的角度就不多谈了,这里有些要求跟客户和工程师有矛盾,有些是没有矛盾的。

标题和开篇所说的全场,就是这三种不同的角色。必须三个角色都满意,这样的软件才能hold全场。 

 今天先写到这里,有时间再修改。下回再讲如何开发和维护好的软件。