打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何做好软件设计师|

软件设计师的要求


    做为应用软件开发中最顶层的角色,软件设计师的能力要求更强,除了具备更强的编程技巧能力外,还需要了解系统结构、主流软件技术和软件趋势,同时要具备相当的专业知识。

   多年编程经验:既包括在专业领域的经验,也包括在软件工程领域的经验。对于一个构架团队,这些素质要求可由各团队成员来分别承担,但其中至少要有一名构架设计师能够把握项目的全局。和任何行业一样,经验是最重要的。软件设计不是纸上谈兵,一个软件设计师首先要是非常好的程序员。软件设计师在编程的时候,用的工具和普通程序员没有任何差别,但使用深度是绝对不一样的。

   抽象能力:一个程序员刚写程序的时候,无非就是为了解决某个功能而进行代码编写。随着程序编写越来越多,他对自己所做的应用方面的理解也越来越多。不同的企业有不同的需求,但把这些企业放在一起来看的话,就会发现他们的一些共性。将这些共性提炼出来,这就是抽象的过程。抽象出来的共性形成的模型可以把这些企业的需求都包含进去,这是做通用软件必须要走的一步。
哪些东西是可以抽象的呢?邓适宜举例说:企业管理软件内部有很多内部票据流程,票据传递有自己的规则,要把他们内部的关系比较灵活的组织起来,只能把流程做为管理对象,而不能把票据做为管理对象,因为票据只是一个载体。这样做,整个系统的柔性会更强,产品才能适合不同的企业,让企业可以灵活的控制,取得最好的效益。。

   面向对象的思想:面向对象是软件开发出现以来最伟大的创新之一,这是每个程序员都追求的,但是否真正掌握了面向对象的思想,这是需要探讨的。面向对象并不受开发工具和语言的限制。很多程序员在用C++写面向对象的代码时候,实际上还是在写C代码。甚至使用C#这种完全面向对象的语言写出来的还是流程化的程序。面向对象可以应用的领域非常广泛。不仅在写代码的过程中要考虑到面向对象,实际上在设计和分析阶段也可以用面向对象的方法。

   舍得抛弃:软件设计是一个渐进过程,是通过不断碰壁,不断调整提高的。要想取得突破,就需要舍得抛弃。通常情况下,第一版程序是要被扔掉的。对于一个功能,上来就写,也不做设计,什么都不想,写到最后都烦了,然后就把这些代码删除掉再重新写,这些脑中有了很多体会和印象,写完第二版之后,也会扔掉,继续写第三版的代码。这时程序逻辑架构和关系自然就很清晰了。只有用这种不断消灭自己以前的东西方面才能够成长的特别快,这就像相当于脱壳,不过这需要自己对自己要求很严格,否则又会回到原来的老路子上了。很多人舍得扔掉自己的代码的,往往是不断的修改,最后进入一个恶性的循环。当然,这种抛弃也是有继承的抛弃,不同时期产品的架构之间也有连续性,不是一个架构就会完全取代前面的架构,好的东西还是可以继承的,像微软的.NET架构就是从DNA架构上发展来的。

   领悟和突破:程序员技术成长一种是通过学习技巧而成长,一种是通过思想领悟而得到成长,后者更为重要。如果不能领悟开发的思想,仅仅掌握了技巧,一旦改换了平台和语言,又要从头学起,所以很多人在转型过程中失败了。而掌握了编程的思想,自动就移过去了。即便是很小的软件,也可以锻炼突破性的编程思维。

   非软件知识:提起软件设计师,人们很喜欢那建筑师做比较,的确这两个行业有很多相似之处。古罗马建筑师维特鲁威说“理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算。”软件设计师同样如此。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
从程序员到软件设计师的过程
敏捷思维: 架构设计中的方法学(14)
优秀程序员不一定是优秀的软件设计师
为什么无法面向对象
一位多年程序员的经验谈
java程序员必读书单
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服