随笔分类 -  软件设计与技术

软件设计是怎样炼成的(8)——用户感觉好才是真的好(用户体验设计)
摘要:软件的UI是客户直接体验软件的地方,好的用户体验可能比追求新技术和追求漂亮设计更加重要,优秀的软件应该是既有外在美也有内在美的。但大部分用户是“外貌协会”的,你和用户说你的软件如何OO,用了多少种设计模式,客户是不鸟你的,客户关注的是用户体验! 阅读全文
posted @ 2014-03-06 23:38 张传波(Fireball) 阅读(2681) 评论(9) 推荐(9) 编辑
软件设计是怎样炼成的(7)——细节决定成败(详细设计)
摘要:当我们需要考虑类、类的内部细节、类之间的关系时,这时我们已经开始做详细设计了。详细设计不一定是一份文档,也不一定是Word文档,详细设计也不一定叫“详细设计”,有时候“编码就是设计”也是未尝不可的。对于MIS类型系统来说,架构设计和数据库设计做好的前提下,详细设计的难度其实是比较小的了,但MIS系统会有一些特殊的需求点,我们需要识别出来并想清楚应对办法。如果你做的软件是高技术含量的非MIS系统,情况将会更加复杂。 阅读全文
posted @ 2014-03-04 01:36 张传波(Fireball) 阅读(2774) 评论(6) 推荐(8) 编辑
软件设计是怎样炼成的(6)——打造系统的底蕴(数据库设计)(下篇)
摘要:数据库是系统的根基,如果需求变更导致你要经常修改数据库的字段,甚至需要修改表及表关系,相信多折腾几次谁都受不了!因为数据库结构的变化,不仅仅是数据库本身的变更,实体类、数据操作层、逻辑层和表现层的代码都需要改。更麻烦的是数据库中如果已经存在大量的旧数据时,这些旧数据是不会“自动”适应新的数据库结构的,你需要想办法来“升级”这些旧数据。本文为你分享如何打造好系统的根基——做好数据库设计!文章太长,分成上下两篇了,此乃下篇。 阅读全文
posted @ 2014-02-26 16:20 张传波(Fireball) 阅读(3298) 评论(13) 推荐(25) 编辑
软件设计是怎样炼成的(6)——打造系统的底蕴(数据库设计)(上篇)
摘要:数据库是系统的根基,如果需求变更导致你要经常修改数据库的字段,甚至需要修改表及表关系,相信多折腾几次谁都受不了!因为数据库结构的变化,不仅仅是数据库本身的变更,实体类、数据操作层、逻辑层和表现层的代码都需要改。更麻烦的是数据库中如果已经存在大量的旧数据时,这些旧数据是不会“自动”适应新的数据库结构的,你需要想办法来“升级”这些旧数据。本文为你分享如何打造好系统的根基——做好数据库设计!文章太长,分成上下两篇了,此乃上篇。 阅读全文
posted @ 2014-02-25 23:27 张传波(Fireball) 阅读(2779) 评论(8) 推荐(3) 编辑
软件设计是怎样炼成的(5)——规划系统的骨架(架构设计)(下篇)
摘要:概要设计和详细设计,可能是最开始听说的设计,但后来发现如果局限在这两个设计的框架下,可能会有诸多不顺,我们需要架构设计、数据库设计、模块设计和用户体验设计,本文主要分享架构设计,此文有点长,所以分拆为上下两篇,下篇为你分享:在”需求驱动“如何做出初步架构设计、如何逐步细化这个设计、分布式与单机系统架构设计的区别等。 阅读全文
posted @ 2014-02-18 19:05 张传波(Fireball) 阅读(3686) 评论(6) 推荐(22) 编辑
软件设计是怎样炼成的(5)——规划系统的骨架(架构设计)(上篇)
摘要:概要设计和详细设计,可能是最开始听说的设计,但后来发现如果局限在这两个设计的框架下,可能会有诸多不顺,我们需要架构设计、数据库设计、模块设计和用户体验设计,本文主要分享架构设计,此文有点长,所以分拆为上下两篇,上篇为你分享:如何避免架构设计“放之四海而皆准”的问题,如何做到”需求驱动架构设计“? 阅读全文
posted @ 2014-02-13 18:15 张传波(Fireball) 阅读(4782) 评论(1) 推荐(12) 编辑
软件设计是怎样炼成的(4)——软件设计的“大道理”
摘要:十几年前刚毕业不久,我从事第一份软件开发的工作,要完成一个项目,但没有任何软件设计的思路,于是请教我的老板。我的老板给了我两种思路:1)先假设软件已经做出来了,想好软件的外在表现,由此倒推软件的实现方法;2)思考程序的数据结构,先设计数据库,然后再搭建软件的上层建筑。老板给了我很大的启发,随着工作的开展,后来我又发现了第3种设计的思路。本文将为你分享三种软件设计的思路:1)由顶而下;2)由底而上;3)由中间到上下。 阅读全文
posted @ 2014-01-27 18:15 张传波(Fireball) 阅读(3951) 评论(12) 推荐(15) 编辑
软件设计是怎样炼成的(3)——软件系统不是木桶型的
摘要:前文提到我们应该需求驱动设计,那就直接来一个更干脆的做法,我们将需求表示为一个一个的用户故事,软件设计分别针对用户故事来做就行了,只要将用户故事逐个实现了,系统也就完成了。果然能这样做吗? 阅读全文
posted @ 2014-01-26 17:59 张传波(Fireball) 阅读(2455) 评论(7) 推荐(14) 编辑
软件设计是怎样炼成的(2)——优秀设计从分析需求开始
摘要:设计应该针对需求来做,这个大道理似乎人人都懂,但实际操作时往往就不是这样。所以我们也不说大道理,直接通过一个“很简单”的案例来体验一下优秀设计应该如何从分析需求开始,体验架构设计是如何全面考虑各种需求、项目的工期限制预算限制,还有项目组人员水平后做出来的。 阅读全文
posted @ 2014-01-25 13:44 张传波(Fireball) 阅读(3583) 评论(8) 推荐(28) 编辑
软件设计是怎样炼成的(1)——什么是优秀的设计?
摘要:某项目的设计文档评审会上,各路技术大牛进行了“热烈”的讨论,讨论的焦点是怎样的设计才漂亮!大家围绕着如何OO,如何高内聚低耦合,如何反转控制等话题进行了“热烈”的争论。照这样开下去,这个评审会岂不是变成了“神仙大会”!怎样的设计才叫优秀的设计呢? 阅读全文
posted @ 2014-01-23 15:51 张传波(Fireball) 阅读(4233) 评论(13) 推荐(34) 编辑
关于“用户数据大裸奔”
摘要:CSDN用户数据裸奔事件,大家都知道了!索尼的PSN网络被入侵,用户数据裸奔事情可能听到的人不是很多。索尼的技术、资金和人才都是一流的,居然也是仅仅简单加密了用户的密码而已,而信用卡等机密信息没有加密。连超级老大索尼都犯这样的超级低级错误,更何况CSDN呢!印证了那句话:写烂代码,迟早是要还滴!!问题是凭什么让我们这些无辜的用户来还?(我重新整理之前写的一篇文章,并且加入了新内容,在博客园上分享给大家!) 阅读全文
posted @ 2013-10-16 14:24 张传波(Fireball) 阅读(1435) 评论(12) 推荐(4) 编辑
大话人工智能
摘要:人工智能英文简称为AI,英文全写Artificial Intelligence,中文直译就是人工智能。人工智能是让人很感兴趣的话题,也是让人很神往的东西,可惜就是人工智能的资料往往是枯涩难懂,希望这里能让大家轻轻松松地了解人工智能的基本知识,为进一步学习打好基础。本文是对人工智能的粗浅分享,老鸟请无视! 阅读全文
posted @ 2013-10-11 14:39 张传波(Fireball) 阅读(2899) 评论(4) 推荐(0) 编辑
神奇的数据挖掘
摘要:谈到BI,就会谈到数据挖掘(Data mining)。数据挖掘是指用某些方法和工具,对数据进行分析,发现隐藏规律并利的一种方法。本文我们将通过具体的例子来学习什么是数据挖掘,为大家分享决策树、分类、类聚、关联、回归、神经网络等数据挖掘方法,当然这些都是一些粗浅的介绍,老鸟请无视! 阅读全文
posted @ 2013-10-09 17:03 张传波(Fireball) 阅读(6975) 评论(36) 推荐(44) 编辑
大话商业智能
摘要:商业智能,英文名字叫Business Intelligence,英文简称BI。BI这词看上去很神秘,给人很高科技的感觉,但真正了解的人不多,又加上某些厂商乱用BI来胡弄人,将好好的BI搞得不成人样。本文将会为大家分享我的粗浅理解,当然如果你是老鸟,请无视此文! 阅读全文
posted @ 2013-10-08 15:52 张传波(Fireball) 阅读(2040) 评论(7) 推荐(2) 编辑
“妞”太多,如何管理?—— 三种创建型设计模式
摘要:每个男程序员可能都会梦想自己有很多妞,其实你真的有很多“妞”,这个“妞”就是“new”!代码中我们经常需要new各种对象,new太多了,代码混乱不好用而且不好维护,如何才能管理好这些“妞”呢?本文将为你介绍设计模式中的其中三种创建型模式。 阅读全文
posted @ 2012-05-15 12:29 张传波(Fireball) 阅读(3299) 评论(11) 推荐(23) 编辑
做一回软件架构师 - 视频分享第2弹!
摘要:这是去年受海南软协的邀请,在海南省海口市所做的一场分享。课程集中火力在部署图、组件图、包图,体会如何利用这三种图做出“高性价比”的软件架构设计,让每位学员做一回软件架构师。将UML知识融入到具体的实例中,而不会单调地讲UML语法。案例一个接一个,贯穿整个课程,学员需分组讨论和思考。 阅读全文
posted @ 2011-07-15 11:56 张传波(Fireball) 阅读(3643) 评论(21) 推荐(11) 编辑
超越竞争对手的秘密武器-技术重用
摘要:软件重用的好处不言而喻,但似乎很多公司都会陷入这样的怪圈:因为项目进度压力大,就不讲究什么重用设计了,太花时间了,完成项目再说。因为一直都是项目进度压力大,故周而复始的循环这个怪圈。如何摆脱这样的怪圈?如何在激烈的竞争中立于不败之地?如何利用好“软件重用”这个厉害的武器? 阅读全文
posted @ 2010-03-22 15:54 张传波(Fireball) 阅读(2471) 评论(12) 推荐(4) 编辑
超级扫盲-什么是设计模式?
摘要:设计模式绝对不是纸上谈兵的知识,光看书就以为自己懂了,那只是井底之蛙之见,设计模式绝对是从实践中来到实践中去的!如果编码经验很少,也不太可能能理解好设计模式,但凡软件设计能力强的人编码功底都是相当扎实的。如果没有能深刻理解面向对象,也不太可能理解好设计模式,...... 阅读全文
posted @ 2010-03-17 18:14 张传波(Fireball) 阅读(3998) 评论(24) 推荐(5) 编辑