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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
T
Tenable Blog
P
Proofpoint News Feed
C
Check Point Blog
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
P
Privacy & Cybersecurity Law Blog
美团技术团队
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
量子位
AI
AI
Spread Privacy
Spread Privacy
Help Net Security
Help Net Security
Know Your Adversary
Know Your Adversary
IT之家
IT之家
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
LangChain Blog
I
Intezer
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
月光博客
月光博客
Recorded Future
Recorded Future
O
OpenAI News
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Y
Y Combinator Blog
Engineering at Meta
Engineering at Meta
S
Security @ Cisco Blogs
Recent Announcements
Recent Announcements
P
Privacy International News Feed
NISL@THU
NISL@THU
MongoDB | Blog
MongoDB | Blog
W
WeLiveSecurity
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
博客园 - Franky
Cyberwarzone
Cyberwarzone
H
Hacker News: Front Page

博客园 - 旴江老段

委托和事件的区别 如何开发和维能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全场。 

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