① 程序员看剧的时候,如果看到有敲代码页面,会暂停看代码吗
我有过一次类似的经历。某次在某大型石化变电站内给电力监控系统配套数据库,由于数据库程序修改量大白天干不完,,我和同事把数据拷贝到笔记本中,回到酒店继续工作。到了饭点肚子实在饿,又怕用餐影响思维进程,就和同事把各自的笔记本带到酒店餐厅,找个偏僻位置一边用餐一边讨论继续修改程序。
不过一旦发现是 HTML/CSS/javascript/Java/Python/C 在搞向标准输出打印,Web/HTTP 这种就没了兴致。改进的话,语言上整点 Racket/OCaml/Haskell/Idris/Rust/C#/Elixir,然后开 Visual Studio Code 全屏,装好对应代码高亮插件,贴点不明觉厉的代码片段比如 Chez Scheme 的代码上去,竖直副屏全屏打开一个 Terminal 不断往外蹦符合演出叙事的消息。毕竟影视剧里的编程是表演的一部分,需要通过编程表演艺术装屄的时候,请剧组尽力保证演出效果。
② 计算机二级考试-Web前端程序设计(制作滚动字幕)
滚动字幕会让很多人感到兴奋,特别是第一次使用滚动字幕时,会爱不释手。现在做一个详细的方案,让你更全面地了解一下。我整理了一些滚动字幕的资料,供程序员参考,希望能帮助到你!
计算机二级考试-Web前端程序设计(制作滚动字幕)
滚动字幕会让很多人感到兴奋,特别是第一次使用滚动字幕时,会爱不释手。现在做一个详细的方案,让你更全面地了解一下。
滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScript的document.write里面,请看下面例的详细说明)Dreamweaver也只能用编写HTML代码的方法。所以强烈建议用记事本打开网页源代码来我。
1.建立第一个滚动字幕。代码:
以下是引用片段:
滚动字幕
2.各参数详解:
a)scrollAmount。它表示速度,值越大速度越快。如果没有它,默认为6,建议设为1~3比较好。
b)width和height,表示滚动区域的大小,width是宽度,height是高度。特别是在做垂直滚动的时候,一定要设height的值。
c)direction。表示滚动的方向,默认为从右向左:←←←。可选的值有right、down、up。滚动方向分别为:right表示→→→,up表示↑,down表示↓。
d)scrollDelay,这也是用来控制速度的,默认为90,值越大,速度越慢。通常scrollDelay是不需要设置的。
e)behavior。用它来控制属性,默认为循环滚动,可选的值有alternate(交替滚动)、slide(幻灯片效果,指的是滚动一次,然后停止滚动)
3.实例:
a)如何给滚动字幕加超链接?这跟平时的超链接是完全一样的。只要在文字外面加上
以下是引用片段:
软件下载
点击软件下载就可以进入了: 软件下载
b)如何制作当鼠标停留在文字上,文字停止滚动?
代码如:
以下是引用片段:
文字内容
c)交替效果。代码如:
以下是引用片段:
文字内容
d)多行文本向上滚动。代码如:
以下是引用片段:
·早晨好啊!
·空气好清新啊
·今朝食乜好呢?
·中央电视台
·注意:如果你的网页经过了FrontPage我,保存之后,只能滚动一行,这时候你发现你原来的代码顺序已经变了,My god!解决的办法是,找出原来的代码,把它嵌入到JavaScript的document.write中即可,上述代码写为:
以下是引用片段:
·早晨好啊!
·空气好清新啊
·中央电视台
由上可以看出,HTML代码是可以随意组合的,功能强大!
③ 怎样快速确定程序员编程水平
想要快速确定程序员的编程水平,可以从以下四个方面考虑:
第一,知识的考察。这个是几乎每个公司都会做的,也是很有效的手段,基本就是考试。包括问语法问标准算法问API问一切有标准答案的问题。一个人懂得多,不一定写得特别好,但是什么都不懂一定写不明白。这个方式还可以按需求选人才,比如我们就在php做前端,那我就可以问一堆关于php的,如果我是做嵌入式的,那我可以问一堆c。可以考察这个程序员在和公司需求的交集上完成的怎么样。这也是最最简单和直观的方法。
第二,对过往项目的理解。这个也是在简历关很常问的,说说你当时做的这个项目吧。这个问题非常有效地考察了他是否理解他之前做的东西。有的人简历写的巨漂亮可是实际那项目和他没关系,或者他就是复制粘贴的代码,其实自己啥都没写。这种时候你和他聊的足够深入之后能很明显地发现他自己说不明白了。同时还可以考察一定的语言表达能力和逻辑能力。用我们的话说,先问到面试官不会的深度,然后让他给面试官讲明白。如果他做的东西,他蒙圈的时候比面试官还早(前提是面试官不是搞这方向的),那一般就比较悲剧了。
第三,对写程序本身的理解。我们很喜欢问一道题,描述一下你是怎么写程序的。凡是说我事先design好所有的模块、接口、功能,然后逐一实现,然后程序就work的,我们都心里默默补上“呵呵”。因为这是不可能的,只能说明他没写过大程序或者没总结过写程序的经验。没有人在完成一千行以上的程序的时候在没写之前就做好所有模块设计的,何况更大的程序。当然还有就是他会不会认为程序跑通一次就完成了(即写程序有没有test阶段)之类的。
第四,动手写程序的能力。这个说实话是面试的时候不太容易考的,因为时间有限。现在的大公司基本是45-60分钟一轮,一轮还要问好几个程序题,所以写的代码都是片段的,大概20行左右,根本没法体现一个人会不会写程序。所以很多人不需要会写程序,只需要刷好leetcode之类的算法题库就可以进大公司(相信我我认识很多)。我们认为一个好的程序员一定要在限定时间之内完成一个完整工作,满足要求的程序。从输入到输出到corner case的验证。而不仅仅是研究明白某个基础算法如何用nlogn而不是n^2解决。这一关卡下去了无数看起来很美好的人。因为我们的题目是不可能在那个时间内找到最优解的,就像绝大部分工程中的编程一样。一个较好的可用解往往比最优解要有价值的多,因为后者需要大量的时间,很可能没有前者直白,而且提升未必很高。这是我们公司最在乎的一点。
④ java怎样在后台获取前台jsp页面文本框的value值
1、如果你用的servlet的话,可以用request.getParameter("name");这样获取jsp页面中表单name="name"值的数据。
2、如果用的struts2的话,必须在Action中写相应的get,set方法,
比如:jsp页面中有个name值等于“name”,那么相应的Action中要有相应的name属性的set和get方法。
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。
Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
扩展质料:
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。
因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
参考资料:java-网络
⑤ 程序员的生活是怎样的
现在的程序员找工作好找,工资高,总之是个很吃香的行业。但是你知道程序员的生活是怎样的吗?
敲代码应该就是他们的生活日常了。电脑是他们的主体,是他们的依靠。因为程序员就是以电脑为生的。程序员技术好的话,工资待遇是很高的,工作时间自己灵活安排,比较自由。程序员一般周末是怎么样过的呢?喝早茶逛商场去旅游吗?其实他们跟这个不太沾边。
我们肯定很好奇,程序员的电脑里面都有些什么呢?都装了些什么神秘的东西?全部是代码和学习资料吗?他们确实是有一些技术上的网站,也会有科技的博客,,有一些会关注一些新闻频道,科技前沿,不过我猜大多数程序员的电脑里大部分都是啪啪啪网站吧。
Bug对于程序员来说并不陌生,他们最害怕的也是这个,他们会经常三更半夜被人叫起来修改bug。当他们遇到这种情况,有一些程序员会说这不是我写的代码,有些程序员会说我在电脑上运行没有问题的啊,大部分的程序员会先痛骂一下,然后还是乖乖地修改。
程序员会不会没钱花呢?我觉得程序员不会没钱花,而是没有时间花。程序员也不会很讲究,衣服有些是妈妈买的,淘宝买的,或者女朋友送的,反正他们的衣服不需要自己买。
最后,还是提点建议给广大的程序员们,赶快找个对象吧。
⑥ 北大青鸟java培训:优秀的程序员该如何更上一层楼
关于我们这个行业,“是什么品质使得优秀的程序员区别于其他程序员?”是最难回答的问题之一。
最近我阅读了EranGalperin的《WhatMakesagoodprogrammer》,很有感触,于是北大青鸟http://www.kmbdqn.cn/想和大家分享一下我认为团队中每个人都需要具备的基本技能和特质。
1.适应性和灵活性很多开发团队都在喊我们需要灵活的开发人员——尤其是在软件开发初期这类人才更为重要。
如果你平时是搞UI编程的,那么我们希望你能深入到数据持久层。
我们甚至可能还会要求你去做一些测试。
你可能是作为一个Java程序员而聘用的,但我们希望下一个应用程序你能用.NET写擅长多任务和成为某个领域的专家一样重要。
在当时可能会让你想抓狂,但是挨过这段日子之后,你的简历绝对会让你的下一个雇主心动不已。
2.热情也许你上大学学习计算机科学这个专业,只是因为你听说这行业能赚钱。
几年之后,当你发现回报并没有你想象得那么丰厚的时候,可能就会开始沮丧,提不起干劲来。
伟大的程序员会真心实意地爱着编程——可以不喜欢现在正在搞的代码——但总的来说,你应该成为一个享受于构建一些东西来解决问题的人。
当有时间空下来可以喝杯咖啡的时候,你会去逛逛类似于JavaLobby的网站,寻找提高自己的途径。
你会对谷歌最新的举措,市面上刚出来的Web框架感兴趣,津津乐道。
3.用科学武装头脑的实干家《ThePragmaticProgrammer》是软件行业中最重要的书籍之一。
它不仅不局限于某一种特定的编程语言,而且还为我们提供了一系列的指南,是一部非常经典的着作。
在团队工作时我们需要考虑到自己的行为所带来的后果,拒绝“破窗理论”。
对工作保持一贯的高标准——测试、编码和文档等等——然后渐渐带动整个的团队,蔚然成风。
保持新鲜感的最好办法是用科学的思维武装头脑。
任何问题都可以被分解,所有语言都有着一系列相似的特征。
之所以有些人能做到这一点,而其他人却不能的主要原因是在于,你是否保持对自己的质疑:这个代码片段还能不能写得更好?是不是可以用一种更有条理的方式呈现这些信息?我可以郑重地告诉你,这些答案几乎总是肯定的,所以踏踏实实地解决这些“自我质疑”吧!4.良好的组织安排能力一个优秀的程序员会把事情安排得井井有条,甚至每天下班前都会列出明天的任务。
这样如果需要做别的事情的话,至少可以参考这个清单,看看放到什么时候做合适,或者会不会对其他任务造成影响。
ps,这里推荐一个蛮有用的工具——Mylyn,一个基于任务的Eclipse插件。
在处理代码和文档方面也需要良好的组织安排能力。
如果我们能够有组织地进行封装、设计、命名类和变量,不但有助于团队成员的理解,还能让你几个月后的再次查看,不至于像是在阅读他人的代码。
5.通情达理,平易近人我们大多数在团队环境中工作的,所以我们必须要具备人际交往的能力。
所有被尊重的伟大程序员个个都平易近人。
你需要腾出时间为他人提供帮助,不管是有问题的代码,还是项目经理想了解一下你的预估。
除此以外,你还应该尽量做到表达清晰——以免交流之后,对方反而对问题更加困惑了。
⑦ 程序员必须知道的HTML常用代码有哪些
html+css代码
一、文本设置
1、font-size:号大小
2、font-style:字体格式
3、font-weight:字体粗细
4、颜色属性color:文本颜色
二、超链接设置
text-decoration:参数
参数取值范围:
underline:为文字加下划线
overline:为文字加上划线
line-through:为文字加删除线
blink:使文字闪烁
none:不显示上述任何效果
三、背景
1、背景颜色
background-color:设置背景色
2、背景图片
background-image:url(URL)
URL就是背景图片的存放路径,none表示无。
3、背景图片重复
background-repeat:参数
四、背景
repeat:不重复平铺背景图片
repeat-x:使图片只在水平方向上平铺
repeat-y:使图片只在垂直方向上平铺
如果不指定背景图片重复属性,浏览器默认的是背景图片向水平和垂直两个方向平铺。
4、背景图片固定
background-attachment:参数
背景图片固定控制背景图片是否随网页的滚动而滚动。如果不设置背景图片固定属性,浏览器默认背景图片随网页的滚动而滚动。为了避免过于花哨的背景图片在滚动时转移浏览者的注意力,一般都设为固定。
五、参数取值范围:
fixed:网页滚动时,背景图片相对于浏览器的窗口而言,固定不动。
scroll:网页滚动时,背景图片相对于浏览器的窗口而言,一起滚动。
六、区块
1、单词间距
word-spacing:单词间距
2、字母间距
letter-spacing:字母间距
3、文本对齐
text-align:参数
七、参数的取值:
left:左对齐
right:右对齐
center:居中对齐
justify:相对左右两端对齐
4、垂直对齐
vertical-align: 参数
top:顶对齐
bottom:底对齐
text-top:相对文本顶对齐
text-bottom:相对文本底对齐
baseline:基准线对齐
middle:中心对齐
sub:以下标的形式显示
super:以上标的形式显示
5、文本缩进
text-indent:缩进距离
12px相当于一个文字距离。
6、空格
white-space:参数
八、参数取值范围:
normal默认,空白会被浏览器忽略、pre保留空白、nowrap文本不换行。
7、显示样式
display:参数
九、参数取值范围:
block:块级元素,在对象前后都换行
inline:在对象前后都不换行
list-item:在对象前后都换行,增加了项目符号
none:无显示
十、方框
1、height高度
2、width宽度
3、padding内边距
4、margin外边距
5、float(浮动):可以让块级元素在一行中排列,例如横向菜单。
6、clear清除浮动
十一、边框
1、样式
border style 参数
边框样式的参数:
none:无边框
dotted:边框为点线
dashed:边框为长短线
solid:边框为实线
double:边框为双线
2、宽度 border width
3、颜色 border color
(7)程序员片段扩展阅读:
HTML常用代码之修改页面的实用性HTML代码:
贴图:<img src="图片地址">
加入连接:<a href="所要连接的相关地址">写上你想写的字</a>
在新窗口打开连接:<a href="相关地址" target="_blank">写上要写的字</a>
移动字体(走马灯):<marquee>写上你想写的字</marquee>
字体加粗:<b>写上你想写的字</b>
字体斜体:<i>写上你想写的字</i>
字体下划线: <u>写上你想写的字</u>
字体删除线: <s>写上你想写的字</s>
字体加大: <big>写上你想写的字</big>
字体控制大小:<h1>写上你想写的字</h1> (其中字体大小可从h1-h5,h1最大,h5最小)
更改字体颜色:<font color="#value">写上你想写的字</font>(其中value值在000000与ffffff(16位进制)之间
消除连接的下划线:<a href="相关地址" style="text-decoration:none">写上你想写的字</a>
贴音乐:<embed src="音乐地址" width="宽度" height="高度" autostart=false>
贴flash: <embed src="flash地址" width="宽度" height="高度">
贴影视文件:<img dynsrc="文件地址" width="宽度" height="高度" start=mouseover>
换行:<br>
段落:<p>段落</p>
原始文字样式:<pre>正文</pre>
换帖子背景:<body background="背景图片地址">
固定帖子背景不随滚动条滚动:<body background="背景图片地址" body bgproperties=fixed>
定制帖子背景颜色:<body bgcolor="#value">(value值见10)
帖子背景音乐:<bgsound="背景音乐地址" loop=infinite>
贴网页:<iframe. src="相关地址" width="宽度" height="高度"></iframe>
⑧ net程序员怎么提升自己的技术能力
一、先列三个常见的开发场景:
1、拿到一个模块详细设计文档,大部分程序员的通常做法就是开始搭建界面代码,然后从第一个按钮点击事件或页面Load事件开始写第一行业务代码。写的差不多了,就运行一下,发现哪里不是自己想的那样,就改改,直到改到是自己预想的那样。
2、做完了一个功能模块或几块相关联的功能模块,输入111asd,发现新建正常、保存正常,就提交给测试人员。测试员用测试用数据、测试场景用例来测试,发现有问题,就登记bug。对于严重的影响下一步测试的BUG,测试员就用内部IM通知这个开发人员。对于不影响继续往下测试的BUG,测试员就登记下来,等程序员有空时处理。
3、程序员一般工作不希望大家打扰,所以开发起来就是开发。等手头开发告一段落,就看看BUG库。发现有与自己有关的BUG,就从第一个BUG开始看起。就开始通过IM和测试员掰扯起来(这不是个BUG啊、业务逻辑不是你想的那样啊、我这里不能重现啊、你给的信息描述不清晰啊),于是IM几来几往,甚至跑过去当面交流一番,甚至会拉扯上产品经理一起讨论,更甚者需要项目经理或产品经理发起一个会议来集体讨论一下
这是不是很熟悉呢?这就是大部分程序员开发的三个步骤:写代码、自测、修复BUG。
二、说好的代码设计、代码测试呢?
代码设计?那不是都有开发平台么,已经固化了啊。那不是维护旧功能做完善修改呢么,又不是写新代码,只能在现有代码基础上修改啊,你又不能大幅重构。
代码测试?你丫需求讨论期、产品设计期、设计评审期那么长,都把研发项目时间占光了,就留下2个星期让我们写代码,我们哪里有时间搞那么深的测试。还想让我们搞结对编程?还想让我们搞测试驱动开发?
而且你看测试,什么功能测试、集成测试、性能测试、安全测试、安装部署测试、升级测试、迁移测试、UAT测试,一大堆测试,测试也需要很多时间。
一个项目,需求讨论、产品范围规划与评审、产品设计与设计评审占了一个半月,开发+自测就一个月,测试占了一个半月,这就4个月了啊。
三、为啥程序员写代码总是写写测测?
刚才大家也都看到了,大部分程序员都是从界面代码开始写起,而且写一写,就运行一下看看。为什么会是这种开发方式?
那是因为大部分程序员缺乏在脑子中的整体建模能力。只能做出来一点,真实的感觉一下,然后再往下。
有些是产品经理的上游就有问题,没给出业务流程图(因为产品经理也没做过业务),也没画清楚产品功能操作流程图。
为啥没给出业务流程图?因为产品经理不熟悉业务,另外,产品经理也没有流程建模能力啊。为啥没画清楚产品功能操作流程图啊?因为不会清晰表达流程啊。
很多产品经理、程序员,都缺乏分类、分层、相关、先后能力,更别说总结、洞察能力。
这是基本训练,是一个做事头脑清醒的人必备的技能,这不是一个程序员或产品经理或测试员的特定技能要求。
我经常看书就梳理书的脉络,每看一本就写一篇总结。我过去闲扯淡还梳理过水浒传、红楼梦的人物关系图呢,其实就在事事上训练自己的关联性、层次性、洞察性。
我经常面试一个人时,我会问这样的问题:“你把我刚才说的话复述一遍,另外你再回答一下我为什么会这样?”,其实,我就在看一个人的细心记忆、完整梳理、重现能力,我也在看一个人的梳理、总结、洞察能力。
我个人写代码就喜欢先理解业务流,然后理解数据表关系,然后理解产品功能操作流,大致对功能为何这样设计、功能这样操作会取什么表、插入或更新哪些表,哪些表的状态字段是关键。
然后我写代码的时候,就根据我所理解的业务流、功能操作流、数据输入输出流,定义函数,定义函数的输入与输出。
然后,我会给函数的输入值,赋上一些固定值,跑下来看看能否跑通这几个关联函数,看看还需要怎样的新增函数,或者看看函数的输入输出参数是否满足跑通。
剩下的事,就是我填肉写详细逻辑代码了。
当然,大部分人没我这样的逻辑建模能力。怎么阅读理解也想象不出来,也没法定义函数。毕竟有逻辑建模能力的程序员都很少,100个人里有10个,已经是求爷爷告奶奶好幸运了。
那怎么办呢?
我建议是分离分工配合,这就是现实中没办法的办法。让有逻辑建模能力的人来设计函数框架、来设计工具来设计代码模板,然后让没有逻辑建模能力的人来填肉写详细逻辑代码。
我们可以先从最紧要的模块开始这么做。不紧要的模块,还让它放任自流,让熟练手程序员继续涂抹。
我曾经还让有头脑的程序员做榜样,给大家分享他是怎么规划函数的,怎么做维护性代码的代码结构改善的。但是发现效果并不佳,其他人并没有因此能做代码设计。可能逻辑建模能力是个人的基本素质,是从小到大训练成型的,不是你一个大学已经几年的人能够短时间内可以训练的。
所以啊,还是让能走的人先走,让从最紧要的模块开始这么做。
不必担心这样做后,因为过去一件事被分工(一个做代码框架一个填肉)成两个人做了会降低工作效率。我们很多的工作效率低就是因为半瓶子醋搞出来的,来回反复修改。
真是应了刘德华在电影里说的那句话:说你又不听,听又听不懂,听懂了又不做,做又做不好,做不好还不服气。
四、为什么大部分程序员不做代码测试或白盒测试或单元测试呢?
还是因为没有代码设计。因为没有函数啊。所以,一个按钮功能有多复杂,代码就有多长。我见过2000行的函数,我也见过1000多行的存储过程和视图SQL。怎么做白盒测试啊,这些代码都粘在一起呢,要测,就得从头到尾都得测。
所以啊,先学会设计函数,先写好函数,这就求爷爷告奶奶了。很多开发了5年的熟练手程序员,可能都未必会写函数。
函数的输入输出值就很有讲究。很多人都写死了,随着版本迭代,发现过去定义的函数参数不够用了,于是就新增了一个参数。然后,相关性异常就爆发了,其他关联的地方忘改了,到底哪些有关联,怎么查啊,本系统没有,没准其他系统就调用你了,你根本不知道哪个神经人曾经COPY过你的代码修吧修吧就改成了他的功能呢,而且里面的很多代码他看不懂也不敢删,只要他实现的功能正常了他也不管了。于是,你改了你这个函数,他的系统就莫名出错了。
所以,我一般会定义几个对象来做参数。另外,我也很注重函数的日志、函数的异常保护、异常抛出、异常返回。另外,我也很注重参数输入值的合法性校验。
所以啊,应该开发Leader们先制定函数编写规范最佳实践,输入输出参数怎么定义比较好,函数的返回值如何定义比较好,函数的日志记录应该怎么写比较好,函数的异常保护、异常抛出、异常返回如何写比较好。先教会一般程序员,先从会写函数开始啊。
当然,你光有一份规范,程序员们还是不理解、不实际应用啊。所以,还得Leader们做好典型的代码模板,里面是符合函数规范的代码框架,只有这样,一般程序员们才会照猫画虎适应了函数设计的编程习惯。
所以啊,我专门重新定义了leader的明确职责,其中第一个重要职责就是:负责工具/框架/模板/规范的制定,并且负责推广且普及应用落地。
你不明确定义Leader的这个重要职责,你不对这个职责做明确的KPI考核,谁尿你啊。你以为好的工具/框架/模板/规范是靠人们的热情、自发产生的么?我们还没有那么自觉高尚啊。
五、为什么大部分程序员不写注释啊?
我经常说一句话,千万别多写注释。为啥?
因为我们经常遇到的问题不是没有注释,而是更糟的是,注释和事实代码逻辑是不相符的。这就出现常见问题了:残存下来的设计文档是一个逻辑、注释是一个逻辑说明、真实代码逻辑又是一个,钟表多了,你也不知道正确时间了。
所以啊,产品文档、注释、真实代码,三者总是很难一致同步。我为了几百人研发团队能做到这个同步花了大量心血和办法,但我最终也没解决了这个问题,还把Leader们、总监们、我都搞的精疲力尽。
索性回归到一切一切的本源,代码,就是程序员的唯一产出,是最有效的产出。那么,让代码写的不用注释也能看懂,咱得奔着这个目的走啊。
为啥看不懂,不就是意大利面条式代码么,又长又互相交杂。
OK,我就规定了,每个函数不能超过50行。用这一个简单规定和静态代码检查插件,来逼迫大家尝试着写函数。有的函数属于流程函数,是串起其他函数的,有的函数就是详细实现函数,实现一个且唯一一个明确作用的。
有了流程函数和功能函数,而且每个函数不超过50行,这就比过去容易看懂了。
六、为什么大部分程序员不抽象公共函数啊?
我经常说一句话:千万别抽象公共函数啊。为啥?
因为大部分程序员缺乏抽象洞察能力。特别是有些积极热情有余、爱学习爱看书、半瓶子醋晃悠的二杆子,看了几本UML、重构、设计模式、整洁代码之道,就跃跃欲试了,还真敢给你抽象公共函数了。
一开始,他觉得80%相似,20%不相似,于是在公共函数里面简单写几个if..else做个区隔就可以。没想到,越随着版本迭代,这些功能渐渐越变越不一样了,但是这个代码已经几经人手了,而且这是一个公共函数,谁也不知道牵扯多少,所以谁也不敢大改,发现问题了就加一个if..else判断。
没想到啊没想到,这个本来当初公共的函数,现在变成了系统最大的毒瘤,最复杂的地方,谁也不敢动,除非实在万不得已,手起刀落。
所以,我平时告诫程序员,纯技术的、纯通用的,你们可以尝试搞搞抽象公共函数,对于业务的,你们还是简单粗暴的根据Leader们做的代码模板代码框架,乖乖的复制、修改、填肉吧。
你们啊,先从做模板做代码片段开始吧,咱们放到咱们内部代码片段开源库里,看谁的代码片段被别人复制的多,说明你的代码抽象设计能力越好了。那时候,我就大胆放心让你撒丫子跑了。在没有学会跑之前,给老子乖乖的复制、修改、填肉吧。
⑨ 请问资深程序员,如何组织管理平时搜集的代码片段
GistBox 用简便的方式来组织和管理代码片段。你的代码会保存到云端进行备份,再也不用担心迷失在杂乱的代码片段中。GistBox 是建立在标准的 HTML5 技术基础上。在旅途中或在办公室,你都可以使用 GistBox。
⑩ 情景活动作文150字‘信’片段式
老师手臂一挥,几名同学飞奔出去,拿回篮球就玩了起来。小明刚上场就投中了一个3分球,旁边的人发出一阵阵欢呼声。小力也投了几个球,但球好像不愿再进篮筐,一个也没中。
过了一会儿,他们打起了比赛。小马从远处传球给小明,小明一个三步上篮就夺取了两分,再加上小马的几个两分球,一下子他们就扭转了局势。
当然也有人不参加比赛,那些人都是认为比赛不公平的。开始我还玩几局,后来就不再玩了。我们也不是闲着,一会儿跑步,一会儿竞走。
到了实心球抛远运动的时间,我和小力站在一排,“三、二、一、投!”两个球从规定的线上飞了过去,停在了同一条线上。