你的位置:首页 > ASP.net教程

[ASP.net教程]程序猿沉浸之路


  这应该是我第一篇文章,一直以来都是取之于博友,并没有用之于博友,所以这篇文章主要是来回报大家,希望对大家有帮助。

  文章主要讲我的程序猿之路。

 

  背景:由于高中的疯狂打网游经历,给我的回报是只能上一个专科,我选择的是软件技术专业。大学是什么都学,.net,java,数据库三个主要方向。

然后是毕业找不到工作,晃荡两年,于2011年考取软件设计师(软考中级),2012年开始从事软件工作,一直到现在,并且会继续下去。

 

 性格:比较内向,还是一根筋,专注。

 记得上初中时,为了想通一个问题,吃喝拉撒睡都会在想,那次打饭排队的时候还在想问题,轮到我了,才想起来饭卡没带。

 每个程序猿都是从菜鸟到大神的,能不能到大神,关键是看能不能沉浸到技术中。

 记得我从事软件一年后,我的技术还是那么烂,但是我坚持下来了。

 题外话:平时宅,会看金庸的小说,因为她让我忘记烦恼,进入一个干净的世界,其实程序猿内向都是善良单纯的。

 看古龙的小说,她教我一个干净世界的黑暗面。多情剑客无情剑,值得大家看。古大师的写法都是衬托。天涯明月刀中写一个人武功的高,不会直接

 写他,而是写另一个高手,说这个高手每次性冲动都会杀人,可是他知道不一定能杀得了那位高手时,他只能用手解决性冲动。(哈哈)

 看梁羽生的小说,不过实在没看下去。

  转入正题:

  框架:我主要是做.net的桌面程序开发,Winform,WPF。主要谈框架思想,说到的技术也是思想的应用。

  现在最牛的框架是什么?五花八门。核心是什么?操作系统的框架思想。大家想想,在我们pc上安装一个exe,就可以运行,让它运行的就是框架。装一个  app,手机上都可以运行,让它运行的也是框架。同理,我们开发应用程序,框架就是让代码运行,如果业务复杂,框架用的是插件框架,插件框架就是让插件(dll,一些dll)运行在其上。如果你写不出来管理这些dll的框架,那就用osgi。其中.net osgi,它的思想就是让插件启动到内存中,来管理这些插件。其中的服务是让插件之间通信,可是她遇上我这样流氓的程序猿,我就不用服务了,只用它把插件加载到内存,管理插件的功能。因为.net framework 4.0 中的dynamic关键字,它会让我在内存中,自个找需要的对象。

 如果你想自个写框架,我给你提一些思想:框架怎么管理dll,怎么和每个dll通信,每个dll之间又是怎么通信。实现这三个方面应该就是框架的核心功能了。操作系统的通信是靠消息机制,但是.net 把消息封装成类似的事件了。所以写通信就是写事件!再次说明,写框架其实就是制定规则,制定协议。

编程思想:程序猿的脑子应该是电脑的映射。程序怎么在操作系统上跑的,写代码的时候就应该模拟这种思想。比如,写代码时要考虑,数据是进入堆呢,还是栈,还是公共区,然后遇到什么算法处理这些数据,处理后数据又到哪里。这就是思想。再次强调修改堆后是连带变化的。

开发一个全新项目的步骤(题外话,由于我是金子而金子一般不容易被boss发现,由于我为了证明自己没有忽悠领导,我能用技术证明这些(其实我写到这里,我是很心酸的)):开发一个应用程序,管理系统,最最重要的就是pdm,全新的系统标准就是pdm,我在带领做一个全新项目时,我一直强调,一定要保证pdm的完整性,和最新性,标准就是pdm。总结起来说就是第一步建数据库model,当你建数据库时,我再一次告诉你,其实你就是建一些主键而已。

如果不是全新的系统那就需要考虑兼容老系统数据问题了。

第二步,肯定是软件架构了,包括主界面(主界面就是权限的控制,对象的控制),具体一点就是基本数据的维护,权限的维护,权限与我们开发的对象之间的关系,及与数据库的交互(三层的话用WCF),

第三步,业务代码的具体实现。程序猿就是程序猿,我不想花精力去搞管理,但是框架是我搭建的,核心代码是我编写的,所以,我要约束其他程序猿在我制定的规则内编写代码自由。

第四步,一句话为bug生,为bug死了,优化程序。

 

感悟:如果你做程序猿在五年之内,让你坚持下来的可能是为了生计,但是做程序猿在五年以上,靠的只有兴趣。程序猿其实是个作家,是创造性工作,但是到中国大部分变成了代码搬运工。所以在公司看不到大神很正常,因为公司的一些制度,一些东西限制了程序猿的创造性,而大神必须创造。

大神是怎么炼成的:他在你抱着老婆啪啪啪的时候他还在写代码,他在放国假的时候他还关在屋里写代码。因为他没女朋友,写代码如同谈恋爱。

程序猿必备条件:悟,一定要多悟,悟性啊!这段代码让我悟到了什么,记录下来,积累的时间长了,不成大神都难,不在于工作多久,看书多少,重在悟性。程序猿一定要有知道就是知道不知道就是不知道,这才是基本要求。我曾经带一个程序猿,能把我气死,不知道装知道,最让我生气的就是这类人,反感的就是这类人,甚至不愿意与其共事,再加上老板的不懂,最后我离职了,其实我是那种比较直的人,是笨死的。

不明觉厉,其实有两层意思,不明白认为很难,不明白认为很容易。每个人都是演说家,演说的好坏在于你对演说的内容专研有多深,当我谈到程序的时候真是滔滔不绝啊。

领导者:人的精力是有限的,不要在你认为自己懂,其实你是半瓶子的地方插手太多。

 

关于开源:有句话叫不要重复写代码,当代码开源了,大家都去优化这个代码,最后这代码功能完善了,但是,版本太多,你是否能找到完善的版本,找到后你是否能看懂。所以,我在做项目时,强调不要随便去网上拷贝代码,就算拷贝,也需要先验证后再放入项目中。

关于代码创造和复制性:我在写代码时,会首先写一个模板,然后相似的地方去复制。

架构师的定义:制定系统代码规则,协议,(即框架),为其他程序猿服务,(解决技术问题,不能让程序猿在规则之外代码自由,开发代码生成工具等)一句话就是程序猿的程序猿。(类似于指针的指针,哈哈)

 

这篇先写到这里吧,就算总纲吧!(让我想起来九阴真经,九阳神功的总纲了,哈哈)

 

 

 

                                                                                     Wang_Charle,我的过去恋人!