‘程序设计’ 分类的存档
掌握基本的编码语言,了解基本的SQL语句 了解系统、WEB等基础运转原理 熟练使用某种编码工具,提高编码效率 熟练使用源码管理工具 基本的调试能力 了解基本的设计模式,能够写出有条理的代码,并能够重构自己的代码 能够使用SDK文档,获取到需要的技术实现 编码牛人,能够实现你所想到的所有功能 能够针对一个产品,提出自己的大体实现思路,并能设计产品的各项功能(界面、操作、运行等) 把握科技前沿,能够提出有建设性的发展思路
今天给移动推介我们的一个系统,远程健康管理。 对方领导看后说:“太复杂了,内容太多了,太不人性化了,应该简单一点,比如:有两个按钮,一个‘我要看数据’,一个‘我要发数据’就好了” 看来乔布斯的思想已经发扬光大了,开发工作任重而道远呀。
好吧,既然很难理解“要用脑子,要思考”这么简单一句话,那么就列几条军规吧。 问我行不行之前,你自己先看看行不行,你自己都认为不行,那就别问我了,改吧 不允许不经修整,直接copy外面代码进入项目 不允许出现大量的项目无关代码 不允许出现相同、相似的功能代码多次出现 通用的功能,尽量想方法作成组件或通用的模板,方便以后项目引用 变量命名、文件命名第一次就应该规范,不要等后面重构再改 不懂就查资料,无法找到资料,就问同事,不要花费巨大时间 编码细节在遵循以上规定的情况下,自己把握 我安排的,并不表示不能改,应按照实际的情况修改方案为最佳状态 宁愿花2倍时间写成完好的可复用的代码,不要用1倍时间,写出以后每次用都要改的代码 好吧,记着“我是一个程序设计师,不是一个打字员,我们实现的应用是要至少百万用户使用的好产品,不是一个应付老板赚取几毛钱工资的垃圾,要成长,能力范围之内必须严格要求自己”。
《转载》 上周,我做了几次面试,要招几名有5年工作经验的高级Java开发人员。但当面试结束后,我感觉到,各种框架(frameworks)使开发变得容易,但同时,也使程序员变笨。 每个人都会在他们的简历中罗列出几乎所有的新框架,他们能“熟练的使用Spring,Hibernate,Web Services等”。 下面是面试的过程。 我: 你在你最近的项目中使用了Spring。使用Spring有什么好处? 应试者: 我们使用XML配置出bean信息,Spring能够帮我们实例化这些bean,供我们使用。 我:如果Spring只是用来创建对象,那我们干嘛要用它?我们可以直接使用“new”来实例化各种依赖关系。为什么我们还要在XML里配置类的名字、要从Spring里取对象? 应试者:如果改天我们又需要对接口做另外一种实现,我们开发出实现后,更改一下XML配置,就能使用我们的新实现了。我们不需要去修改Java类和重新编译它们。 我:可是既然你写出了新的Java类,你必然要重新编译你的项目。 至于XML里的变化,99%的时间里你的XML都是打包在 war 或 ear 文件里的。 所以,你只需要运行一下ant脚本,把你所有的变更都包在war文件里就行了。你的“如果使用XML就不需要编译”的观点是站不住脚的。 应试者:唔,但依赖注入的设计模式建议采用这种做法。 我:好吧。我们就先聊到这。人力资源部会给你打电话的。 面试另外一个家伙: 我:你能描述一下你最近开发的项目、以及使用到的技术吗? 应试者: 那是个XYZ系统,我们使用了Spring,Hibernate,REST WebServices。 我:那好。你能解释一下RESTful吗? 应试者:我们使用@RequestMapping(value=”/url”, method=”POST”)来开发RESTful应用。我们还使用了PUT,DELETE方法。 我:哦,那RESTful个什么概念? 应试者: 我不是说了吗,如果你使用 @RequestMapping(value=”/url”, method=”POST”),你就是在开发RESTful应用。 我:哦,你对Hibernate如何? 应试者:我这两年一直在使用Hibernate。我对Hibernate很熟悉。 我:跟JDBC比起来,Hibernate有什么优势? 应试者:使用Hibernate,我们不需要写任何跟数据库交互的东西,Hibernate会帮我们处理这些。 我:那Hibernate怎么能知道你的项目需要如何的存取? 应试者:如果我们使用了Hibernate,它会帮我们完成存储,更新,取数据等数据库操作。 我:哦,哦。你在业余时间会读一些技术相关的博客吗? 应试者:当然,我对Hibernate的深入掌握就是这样学会的。 我:非常好,很高兴见到你。我们的人力资源部会给你打电话的。 面试过程就这样 … 我绝对相信各种框架会提高程序员的工作效率。但程序员也应该努力去了解这些框架是如何工作的。你并不需要理解各种框架的所有内部工作原理。如果你非常的擅长Servlets和JSP,那你就很容易理解诸如Struts,Spring MVC等Java Web框架。如果你不了解这些基础知识,很显然,所有你的回答只能是“框架/标记/XML帮我们做了这些”。 我强烈建议所有刚开始职业生涯的Java程序员都要认真学习Java核心,Servlets,JSP知识。只有这样你才能正确的理解各种框架的工作原理。
MacBook的触摸板技巧: 1,点触功能:打开“系统偏好设置”>“键盘与鼠标”>“触摸板”,勾选“点按”,“拖移”和“使用两个手指”。 2,右键功能:两个手指同时点触触摸板。 3,拖动屏幕:等同于PC鼠标滑轮。两个手指同时按在触摸板上后,再同时上下或左右移动。 4,缩放屏幕/照片或网页:两个手指同时按在触摸板上后,分别往不同方向叉开移动。 5,缩放网页:一个手指(譬如左手)按在触摸板上后,再用另一个手指(譬如右手)一下一下的左右移动。 6,前进、后退(文件夹/网页):一个手指(譬如左手)按在触摸板上后,再用两个手指(譬如右手)上下或左右移动。 7,拖选文字、文件或文件夹:手指双击触摸板,第二次点按的时候手指不要离开触摸板,就这样黏住触摸板来移动。 MacBook的快捷键技巧: 5,重命名:点按文件或文件夹,再按“回车”。 6,显示桌面:Fn+Shift+F11 7,切换输入法:Command+Space 8,前进/后退:Command+箭头左边/右边方向 9,查看照片时的下一张:Space 10,截图键:Shift+Command+3全屏截图,Shift+Command+4自定义区域截图。截图后,文件自动保存在桌面。 11,最小化当前程序:Command+M 12,彻底退出一个程序:Command+Q
转载一篇不错的文章《计算机爱好者 VS. 程序员》 优秀的计算机爱好者具有一种无价的技能。可作为一名程序员会跟计算机爱好者一样吗?难道程序员跟那些不知道如何编码的计算机爱好者们相比,会在创造性上处于劣势吗? 下面的这个故事让我看清了他们之间的不同。 我最近被邀请在一个周末创业活动中做指导。周五晚上,我们召集到一起吃匹萨,定创意,建团队以及讨论启动计划。临近结束时,每个人都对这个周末将要做的事情感到非常的满意。 周末早晨我来到现场发现人们都在努力的工作。有些人通宵未回在这赶进度实现他们的想法。这就是创业精神! 但我吃惊的发现如此多的团队都已经开始编码了!感觉是他们急着让东西能在周日晚上之前开发出来,跑起来,这使大多数的团队一心想着实现他们最初的创意想法,而不再去探索不同的创意、选择一个更好的来实现。 听起来没什么不同吗? 有一个团队脱颖而出,因为这个团队中没有会编程的。所以他们把时间都花在用PowerPoint制作原型,走访各个房间跟其他团结交流他们的想法, 获得反馈,然后回到他们的桌子边讨论、改进提炼他们的想法。他们是最喧闹的,最有生气的,最热情好善的一组,他们看起来从活动中得到了不少乐趣。最重要的 是,他们向前推进的速度比其他组快很多,因为他们没有迷失在要能清楚如何使用Rails或PHP让什么东西跑起来的细节里。 周日早上,他们灵光一闪,抛弃了以前所有的原型,重新回到绘图板前工作。我看到他们在数小时里做出来一个新原型。因为没有写代码,他们并不担心抛弃 昨天的作品(毕竟,原型就是用来干这个的)。因为他们使用PowerPoint来模型化他们的想法,他们可以快速的让想法具体化。 在周日晚上,他们并没有交出一个可以运行的应用程序,但他们使用依据他们最终创意制作出来的、具有点击效果的原型吸引力所有的观众。他们不仅呈现了最终创意,他们还带着观众遍历了整个创意的变更迭代过程。 结果呢?他们夺得头筹! 他们并不是赢在创意有多么的好或比其他组包含更多的功能。这个周末产生了很多的创意。但当其他组把有限的时间花在实现细节上时,这个组一直专注于他们的想法的高层面的问题,把更多的时间花在改进它而不是编码上。 他们不是程序员,但他们是计算机爱好者。这个身份最终让他们受益匪浅! 很多创业者认为自己跟那些会编码的人比起来处于一种劣势。他们认为自己不是计算机爱好者,因为不会编程。而事实却是,他们具有一种创造力上的优势, 因为他们不会急着一头扎进编码工作里。相反,他们会被迫去“修剪”他们的想法,用上层的工具和平台测试它们,会被限制不去关心细节。这将迫使他们关注于解决用户问题,而不是解决实现问题。 做软件不只是编码的技术。它是一种在事情不同的阶段关注每阶段最重要的事情、而不是过早的陷入细节的思维习惯。
总结下: 最大的问题: 1.客户端注册不稳定 ,第一次注册都成功,之后就逐渐掉线,直至全部掉线,我们有120个分机。 解决:是大唐高鸿的驻地网关的问题,软件版本2011-3-1的,有问题,降级解决,这个问题把我搞死了。 2.*8分组代答的问题。 刚开始,为了分组看起来有意义,就使用了字母作为分组:比如:YeWuZu1,不能代答,然后改为6680,跟坐席组号相同,也不行,最终改为1,可以了,真是奇怪呀,这个组又没啥用,为啥要这样弄呢? 好奇怪的测试结果。。22可以、220 222 88 99都不可以,,33可以。y1不可以。 3.外呼,原来外呼只能一个,不能多路,运行商确认是外呼的时候,主叫号码设置有问题 之后使用 exten => _NXXXXXXX,1,Macro(user-callerid,) exten => _NXXXXXXX,n,Set(CALLERID(all)=”6931nnnn” <6931nnnn>) 强制设定,可以了,很奇怪得是按说前面的6931设置后,尖括号内没必要用真实号码了,不清楚为啥驻地网关非要使用后面的号码为显示号码,应该还是大唐的问题,毕竟sip协议写的,前面是显示号码的。 4.拦截呼叫中心号码 这个简单,直接 exten => _6931nnnn,1,Goto(ext-queues,06800,1) 转到Queue中去就行了。 5.录音分目录存放,使用agi实现自动创建目录,返回路径即可 6.主叫号码,从中继(使用SIP账号登录)过来的呼叫,这边显示的主叫是系统设置的显示主叫,在Queue中更是显示的两个号码相加的号码,可以使用SIP_HEADER(From)获取,SIP的显示号码,通过截取获得真实主叫。 7.驻地网关中的拨号计划,不要短号码覆盖长号码,否则无法呼出长号码。 8.通过网关接入的电话,DTMF获取问题。在驻地网关,不一定都是要选择透传,这次选择rfc2833,估计是要和asterisk的配置一样。 9.A8里面需要设置代理服务器才能呼出,很奇怪的选项,如果没有,则使用注册服务器相同的地址。 10.ringgroup只能获取到1个呼入,跟下面所包含的分机数量无关,再来电话,则直接转到fail。 11.Queue只能在timeout时才能转到fail中去。。很失败。按道理,应该有轮询一遍或者全忙之后失败的选择。 12.T4使用SIP账号注册时,要设置呼出路由,才能呼出。 13.T4有访问控制功能,如果打开,则需要将sip服务器IP加入,否则无法注册成功。 14.单通的问题可能是中继线插错了 15.R32的拨号计划,先匹配短的,如果设置了:01XXX则,所有的长途号码都会被截断,比如:018633334444被截断为01863。拨号计划不分前后行,放在哪里都会被截断。 还有一些其他基本功能,就相对简单点了。 呵呵,终于搞定asterisk的第一个应用了。真是一个强大的系统。。牛逼。。就是源代码太多了,无从下手,有空还是需要学习学习整体框架设计和具体的编码,假如能够看懂,那么内力应该会提升一大段。
近来发现我的win7的本地连接越来越多,ipconfig都无法看到正确的数据了,终于找到如下的方法,不过还是需要自己在设备管理器中将 6to4的本地连接删除到,悲剧,30、40多个。(点查看、显示隐藏) 如果大家在用笔记本,经常调试网络的话。Windows7会自发建立一条IPV6隧道,通常我们用ipconfig /all就会看到很多条隧道,比如我这边有40多个隧道,想看IPv4信息的话,就会一闪而过,给使用带来不便。这是因为Windows7在IPv6迁移过程中需要使用一种或多种IPv6过渡技术。我们可以通过手动关闭IPv6隧道。 我们只用使用以下3条命令把IPv6的接口关闭即可 netsh interface teredo set state disable netsh interface 6to4 set state disabled netsh interface isatap set state disabled 若想还原IPv6隧道则用以下命令: netsh interface teredo set state default netsh interface 6to4 set state default netsh interface isatap set state default
