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

推荐订阅源

K
Kaspersky official blog
云风的 BLOG
云风的 BLOG
IT之家
IT之家
T
The Blog of Author Tim Ferriss
C
Check Point Blog
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
G
Google Developers Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
F
Fortinet All Blogs
D
DataBreaches.Net
The Register - Security
The Register - Security
L
LINUX DO - 最新话题
W
WeLiveSecurity
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V2EX - 技术
V2EX - 技术
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
F
Full Disclosure
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
I
InfoQ
S
Secure Thoughts
TaoSecurity Blog
TaoSecurity Blog
MyScale Blog
MyScale Blog
AI
AI
Recent Announcements
Recent Announcements
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Vulnerabilities – Threatpost
NISL@THU
NISL@THU
SecWiki News
SecWiki News
Cisco Talos Blog
Cisco Talos Blog
H
Heimdal Security Blog
Y
Y Combinator Blog
N
News | PayPal Newsroom
P
Privacy International News Feed
美团技术团队
Attack and Defense Labs
Attack and Defense Labs
D
Docker
PCI Perspectives
PCI Perspectives
Webroot Blog
Webroot Blog
A
About on SuperTechFans
A
Arctic Wolf
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
MongoDB | Blog
MongoDB | Blog
T
Threat Research - Cisco Blogs

博客园 - 旴江老段

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

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