仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1262|回复: 7
打印 上一主题 下一主题

[学习教程] NET网页编程之致急躁的程序员们(一):程序员的基础本质

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:21:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。中国有良多小伴侣,他们18,9岁或21,2岁,经由过程自学也写了很多代码,他们有的代码写的很大度,一些手艺细节相称出众,也很有研究精力,可是他们被一些毛病的熟悉和概念摆布,缺少对体系,对程序的全体了解才能,这些人,一个网上的伴侣说得很好,他们实践fans,压根没有资历称为程序员,可是据我所知,很多小收集公司的Cfans,拿着吓人的人为,做着吓人的项目,项目标了局一般也很吓人。

程序员基础本质:


作一个真正及格的程序员,大概说就是能够真正及格完成一些代码事情的程序员,应当具有的本质。

1.团队精力和合作才能
把它作为基础本质,并非不主要,恰好相反,这是程序员应当具有的最基础的,也是最主要的安居乐业之本。把高程度程序员说成独行侠的都是在梦话,任何团体的力气都是无限的,即使如linus如许的天赋,也必要经由过程构成壮大的团队来制造事业,那些遍及环球的为linux写中心的妙手们,没有合作精力是不成设想的。独行侠能够作一些赢利的小软件发点小财,可是一旦进进一些年夜体系的研发团队,进进贸易化和产物化的开辟义务,缺少这类本质的人就完整分歧格了。

2.文档习气
说高程度程序员历来不写文档的一定是年幼无知的毛孩子,优秀的文档是正轨研发流程中十分主要的环节,作为代码程序员,30%的事情工夫写手艺文档是很一般的,而作为初级程序员和体系剖析员,这个比例还要高良多。缺少文档,一个软件体系就缺少性命力,在将来的查错,晋级和模块的复用时就城市碰到极年夜的贫苦。

3.标准化,尺度化的代码编写习气
作为一些本国出名软件公司的礼貌,代码的变量定名,代码内正文格局,乃至嵌套中行缩进的长度和函数间的空行数字都有明白划定,优秀的编写习气,不仅有助于代码的移植和纠错,也有助于分歧手艺职员之间的合作。
fans呐喊高程度程序员写的代码旁人历来看不懂,这类呐喊只能证实他们本人压根不配自称程序员。代码具有优秀的可读性,是程序员基础的本质需求。
再看看全部linux的搭建,没有标准化和尺度化的代码习气,环球的研发合作是相对不成设想的。

4.需求了解才能
程序员必要了解一个模块的需求,良多小伴侣写程序常常只存眷一个功效需求,他们把功能目标全体回结到硬件,操纵体系和开辟情况上,而无视了自己代码的功能思索,有人已经放言说写一个广告互换程序很复杂,这类人历来不晓得在百万乃至万万数目级的会见情形下的功能目标是怎样完成的,关于如许的程序员,你给他深蓝那套体系,他也做不出太极链的并访才能。功能需求目标中,不乱性,并访支持才能和平安性都很主要,作为程序员必要评价该模块在体系运营中所处的情况,将要遭到的负荷压力和各类潜伏的伤害和歹意打击的大概性。就这一点,一个成熟的程序员最少必要2到3年的项目研发和跟踪履历才有大概故意得。

5.复用性,模块化头脑才能
常常能够听到一些程序员有如许的埋怨,写了几年程序,酿成了纯熟工,天天都是反复写一些没有任何新意的代码,这实际上是中国软件人才网最年夜华侈的中央,一些反复性事情酿成了纯熟程序员的次要事情,而这些,实际上是完整能够制止的。
复用性计划,模块化头脑就是要程序员在完成任何一个功效模块或函数的时分,要多想一些,不要范围在完成以后义务的复杂思绪上,想一想看该模块是不是能够离开这个体系存在,是不是能够经由过程复杂的修正参数的体例在其他体系和使用情况下间接援用,如许就可以极年夜制止反复性的开辟事情,假如一个软件研发单元和事情组可以在每次研发过程当中都思索到这些成绩,那末程序员就不会在反复性的事情中延误太多工夫,就会有更多工夫和精神投进到立异的代码事情中往。
一些好的程序模块代码,即使是70年月写成的,拿到如今放到一些体系内里作为功效模块都能合适的很好,而如今我看到的是,良多小公司软件一晋级或改善就动辄全体代码重写,年夜部分反复性事情无谓的华侈了工夫和精神。

6.测试习气
作为一些贸易化正轨化的开辟而言,专职的测试工程师是不成少的,可是并非说有了专职的测试工程师程序员就能够不举行自测;软件研发生发火为一项工程而言,一个很主要的特性就是成绩发明的越早,办理的价值就越低,程序员在每段代码,每一个子模块完成落后行仔细的测试,就能够只管将一些潜伏的成绩最早的发明息争决,如许对全体体系建立的效力和牢靠性就有了最年夜的包管。
测试事情实践上必要思索两方面,一方面是一般挪用的测试,也就是看程序是不是能在一般挪用下完成基础功效,这是最基础的测试职责,惋惜在良多公司这成了独一的测试义务,实践上还差的远那;第二方面就是非常挪用的测试,好比高压力负荷下的不乱性测试,用户潜伏的非常输出情形下的测试,全体体系部分妨碍情形下该模块受影响情况的测试,频发的非常哀求堵塞资本时的模块不乱测试等等。固然并非程序员要对本人的每段代码都必要举行这类完全测试,可是程序员必需苏醒熟悉本人的代码义务在全体项目中的位置和各类功能需求,有针对性的举行相干测试并尽早发明息争决成绩,固然这必要下面提到需求了解才能。

7.进修和总结的才能
程序员是人才网很简单被减少,很简单后进的职业,由于一种手艺大概仅仅在三两年内具有抢先性,程序员假如想安居乐业,就必需不休跟进新的手艺,进修新的妙技。
擅长进修,关于任何职业而言,都是行进所必须的动力,关于程序员,这类请求就加倍高了。可是进修也要找对方针,一些小coding有些codingTO就是如许的coding上只是一些Cfans们,他们也津津有味于他们的进修才能,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为夸耀的本钱,自觉的追一一些浅薄的,外表的器材和名词,做收集程序不懂通信传输协定,做使用程序不懂中止向量处置,如许的手艺职员,不论把握了几所谓的新言语,永久不会有质的进步。
擅长总结,也是进修才能的一种表现,每次完成一个研发义务,完成一段代码,都应该有目标的跟踪该程序的使用情况和用户反应,随时总结,找到本人的不敷,如许慢慢进步,一个程序员才大概发展起来。
一个不具有发展性的程序员,即使长远看是个妙手,倡议也不要选用,由于他后进的时分即刻就到了。具有以上全体本质的人,应该说是够格的程序员了,请注重以上的各类本质都不是由IQ决意的,也不是年夜学某些教材里能够进修到的,必要的仅仅是程序员对本人事情的熟悉,是一种认识上的成绩。


那末作为初级程序员,以致于体系剖析员,也就是关于一个程序项目标计划者而言,除应当具有上述全体本质以外,还必要具有以下本质:
1.需求剖析才能
关于程序员而言,了解需求就能够完成及格的代码,可是关于研发项目标构造和办理者,他们不仅要了解客户需求,更多时分还要自行制订一些需求,为何这么说呢?
一样平常而言,举行研发义务,大概是客户提出需求,大概是市场和营销部门提出的需求,这时候候关于研发部门,他们看到的不是一个完全的需求,一般而言,该需求仅仅是一些功效上的请求,大概改正规些,大概取得一个完全的用户视图;可是这都不敷,由于客户因为非手艺要素多一些,他们大概很难提出完全和明晰,大概说专业性的功能需求,可是关于项目构造者和计划者,他必需可以苏醒熟悉到这些需求的存在并在完成需求剖析呈报的时分得当的提出,同时要完全和明晰的表现在计划仿单内里,以便于程序员编码时不会得到这些原则。
程序计划者必需准确了解用户需求所处的情况,并针对性做出需求的剖析,举例而言,一样一个软件经由过程ASP租用体例公布和经由过程License体例公布,功能需求大概就是有区分的,前者夸大的是更好的支持才能和不乱性,尔后者则大概更夸大在各类平台下的普适性和安装利用的简便性。

2.项目计划办法和流程处置才能
程序计划者必需可以把握很多于两到三种的项目计划办法(好比自顶至下的计划办法,好比疾速原型法等等),并可以依据项目需乞降资本搭配来选择符合的计划办法举行项目标全体计划。计划办法上选择不妥,就会延误研发周期,华侈研发资本,乃至影响研发效果。
一个程序计划者还必要把良多工夫用在流程图的计划和处置上,他必要做数据流图以建立数据辞书;他必要加工逻辑流图以构成全体的体系处置流程。一个流程有成绩的体系,就算代码多大度,每一个模块多精巧,也不会成为一个好的体系。固然,做好流程剖析并选择好项目计划办法,都必要在需求剖析才能上具有充足的掌控。

3.复用计划和模块化分化才能
这个仿佛又是老调重谈,后面基础本质上不是已申明了这个成绩吗?作为一个处置模块义务的程序员,他必要对他所面临的特定功效模块的复用性举行思索,而作为一个体系剖析职员,他要面临的成绩庞大的多,必要对全体体系依照一种模块化的剖析才能分化为良多可复用的功效模块和函数,并针对每模块构成一个自力的计划需求。举个例子,比如是汽车临盆,最早每辆汽车都是自力安装的,每一个部件都是量身定做的,可是厥后纷歧样了,呆板化年夜临盆了,一个汽车厂入手下手经由过程流水线来临盆汽车,自力部件入手下手具有必定的复用性,在厥后尺度化成为年夜趋向,分歧型号,品牌乃至分歧厂商的汽车部件也能够举行便利的换装和晋级,这时候候,汽车临盆的效力到达最年夜化。软件工程也是一样的事理,一个成熟的软件行业,在一些相干项目和体系中,分歧的部件是能够随便换装的,好比微软的很多桌面软件,在良多操纵模块(如翻开文件,保留文件等等)都是复用的统一套功效模块,而这些接口又经由过程一些类库供应给了桌面使用程序开辟者便利挂接,这就是复用化的模块计划分明的一个左证。
将一个年夜型的,扑朔迷离的使用体系分化成一些绝对自力的,具有高度复用性的,并能仅仅依托几个参数完成数据接洽的模块组合,是作为初级程序员和体系剖析员一项最主要的事情,符合的项目计划办法,明晰的流程图,是完成这一方针的主要包管。

4.全体项目评价才能
作为体系计划职员,必需可以从全局动身,对项目又全体的苏醒熟悉,好比公司的资本设置是不是公道和到位,好比工程进度布置是不是能最年夜化表现效力又不至于没法定期完成。评价项目全体和各个模块的事情量,评价项目所需的资本,评价项目大概碰到的坚苦,都必要大批的履历堆集,换言之,这是一种不休总结的累计才干到达的地步。在东方一些软件体系计划的带头人都是很年长的,好比4,50岁,乃至更老,他们在编码方面已远远不如年老人那样活络,可是就项目评价而言,他们几十年的履历堆集就是最主要和可贵的财产。中国缺这么一代程序员,次要还不是缺那种年事的程序员,而是那种年事的程序员基础上都是研讨单元作出来的,都不是从专业的产物化软件研发生发火出来的,他们没有能堆集那种产物化研发的履历,这也是没有举措的事变。

5.团队构造办理才能
完成一个项目工程,必要团队的同心合力,作为项目计划者或研发的主管人,就应该有才能最年夜化发扬团队的全体力气,手艺办理因为其专业性子,不年夜同于一样平常的人事办理,由于这内里计划了一些手艺性的目标和要素。
起首是事情的量化,没有量化就很难做到符合的绩效审核,而程序量化又不是复杂的代码行数能够盘算的,因而请求手艺办理职员必要能真正评价一个模块的庞大性和事情量。
其次是对团队合作形式的调剂,一样平常而言,程序开辟的合作一般分为小组举行,小组有主程序员体例的,也有平易近主体例的,依据程序员之间的才能程度差异,和依据项目研发的需求,选择符合的组队体例,并能将责权和成员的事情义务严密分离,如许才干最年夜发扬组队的效力。
一个代码程度高的人,一定能成为一个及格的项目研发主管,这方面的才能完善常常是简单被无视的。

综上能够看到,作为一个主管研发的卖力人,一个项目计划者,所必要具有的本质和才能并非程序代码编写的才能,固然一样平常情形下,一个程序员经由过程不休的总结进步到达了这类本质的时分,他所具有的代码编写才能也已相称不复杂了,可是请注重这内里的因果干系,一个高程度的项目计划者一般已是代码编写相称优异的人了,可是并非一个代码相称优异的程序员就能够胜任项目计划的事情,这内里存在的也不是智商和教材的成绩,仍是在于一个程序员在堆集履历,慢慢提拔的时分没无意识到应该思索哪方面的器材,没有无意识的就项目标构造和复用计划举行推测,没有常常性的文档习气和总结习气,不改动这些,我们的及格的项目计划者仍是十分完善。
别的,为避免有没有聊的人和我叫真,增补一点,本文针对方针是作贸易化的软件项目和工程,那些科研机构的编程妙手,好比算法妙手,好比图像处置妙手,他们的事情是研讨课题而非间接完成贸易软件(固然终极直接成为贸易产物,好比微软研讨院在作的研讨课题),因而他们夸大的本质多是别的的器材,这些人(专家),其实不能说是程序员,不克不及用程序员的尺度往权衡。如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-18 13:28:07 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-24 09:41:56 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
小魔女 该用户已被删除
地板
发表于 2015-2-1 06:34:23 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
谁可相欹 该用户已被删除
5#
发表于 2015-2-7 01:58:46 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
金色的骷髅 该用户已被删除
6#
发表于 2015-2-19 19:40:54 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
老尸 该用户已被删除
7#
发表于 2015-3-6 15:45:19 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
兰色精灵 该用户已被删除
8#
发表于 2015-3-20 12:48:14 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表