CSDN日报190812:写给程序员的n+1条建议

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blogdev.blog.csdn.net/article/details/99301431

CSDN日报来啦!给大家奉上当日最新鲜的技术干货!

热门项目|华为鸿蒙操作系统

HarmonyOS是第一个基于微内核的全景分布式操作系统。它是华为自主开发的操作系统。HarmonyOS系统于2019年8月9日在华为开发者大会(<HDC.2019>)上正式发布。华为将率先部署智能终端,如智能屏幕,车载终端和可穿戴终端。在未来,越来越多的智能设备将使用开源HormonyOS。
HarmonyOS实现模块化耦合,这对应于不同设备的灵活部署。HormonyOS有三层架构。第一层是核心,第二层是基本服务,第三层是程序框架。它可用于大屏幕,PC,汽车和其他不同的设备。它也可以随时用在手机上,但目前华为仍然喜欢Android。
HarmonyOS的底层由未来组成 HarmonyOS micro kernel,Linux kernel并且Lite OS它将成为一个完整的hongmeng微内核架构。

程序人生|写给程序员的n+1条建议

作者:Leesin Dong

不要抱怨加班
互联网加班是常态,研究表明,人的大脑很少因为工作的繁忙而真正的感到疲倦,更多的是消极情绪,所以我们如果希望加班早点结束,应该让自己开心起来,真正的喜欢上加班正在做的事情,否则将是恶性循环。那么如何让自己喜欢上加班时候的重复劳动呢?《人性的弱点》这本书上说如果我们很讨厌一件事情,但是我们暗示自己很喜欢它,假装很喜欢他,可能慢慢的就真的喜欢上它了,就像你现在很难过,但是你强迫自己微笑起来,这个时候心情也会好很多,没错肢体上的改变也会影响情绪的改变,就像正在加班的你尝试着挺直腰板,面带微笑,没准一会就干完了自己认为需要一天才能完成的“重复劳动”。
点击阅读全文

数据库|MySQL数据库实操教程(23)——数据库备份与还原

作者:谷哥的小弟

在操作数据库时难免会发生一些意外造成数据丟失。例如:突然断电、管理员的操 作失误都可能导致数据的丢失。为了确保数据的安全,需要定期对数据库进行备份,从而当遇到数据库中数据丢失或者出错的情况可将数据进行还原。
点击阅读全文

架构|Flutter游戏:简单规则与结束页

作者:何小有

一般步骤:
1.在创建的失败页面之前,要设置游戏失败的条件,目前就先设置1个条件,就是是如果玩家点击屏幕而且没打中蚊子。要检查点击是否命中蚊子还是没有命中,就需要创建另一个布尔(bool)变量,这个变量将在坚持是否命中之前定义。
打开hit-game.dart并在循环遍历蚊子之前,将didHitAFly变量声明放在onTapDown处理程序中。同时在循环过滤蚊子时,添加一个if块中,检查是否点击蚊子。然后在forEach循环之后,再检查当前是否处于游戏页面中,以及是否点击了蚊子。
点击阅读全文

移动开发|Android自定义View:手把手带你深入了解神秘的估值器(TypeEvaluator)

作者:Carson_Ho

动画的使用 是 Android 开发中常用的知识
可是动画的种类繁多、使用复杂,每当需要 采用自定义动画 实现 复杂的动画效果时,很多开发者就显得束手无策
Android中 补间动画 & 属性动画实现动画的原理请点击阅读全文查看

操作系统|Freedos在运行时从实模式进入保护模式

作者:dog250

酷爱历史,于是在主音吉他手的推荐下,在历史的垃圾堆里找到了Freedos。这个从1994年开始的dos兼容开源操作系统。实际上,它就是dos,可以说它是MS-DOS的续命者。
非常令人震惊,2016年至今,这个Freedos竟然依然活跃。我以前竟然不知道这个。
我一直以为1994年和现在的201X年对于计算机这个特定的领域而言简直就是两个时代,中间的技术代差堪比希腊火,伏火雷这种和现代洲际导弹之间的差异,没想到1994年的系统,竟然在今天还能玩到原汁原味的延续下来的东西,不错!同样的1990年代初的Linux,你看看5.3和0.01之间的差异就知道了。
点击阅读全文

优质博文推荐

如果您的文章符合以下要求,欢迎大家投稿,拉您进入CSDN博文推荐群,添加运营小姐姐微信:172984955 备注:博文推荐!
1.有一定技术指导性的中高级技术文章
2.基础知识点讲解
3.最新的科技热点资讯
4.求职面试、职场进阶、人生感悟
推荐格式:文章标题+CSDN文章地址+推荐语(一两句话阐述)

推荐阅读:

展开阅读全文

【转】写给WEB程序员

04-12

程序员是一个脆弱、特殊的群体,以各种方式生存在有01的世界里。rnrn程序员的特点:rn狂躁,但是有修养rn随和,但是疯癫rn肯向任何人学,但是不服任何人rn守约,但是不守时rn感情丰富,但是单纯rn……rnWeb程序是程序员中的一个别具特色的群体,他们有着和HTTP协议类似的无状态性、无序性、不可预测性。我这么说,是因为web程序员的出身、成分、学习途径、从业历程多种多样。Web程序员,是现今IT从业者中最具活力也最复杂的最可爱的一群人。rnrn相比于传统的“学院派”程序员(请暂时允许我这么说),Web程序员的普遍出身都比较“贫寒”,这是行业事实,尤其是处于刚入行不久的这一大部分人中,有很多是没有上过大学,受过正常高校教育体制折磨的。高中、专科甚至初中学历的程序员比比皆是,他们通过自己的努力,掌握了一定的技能,取得了一项不错的工作。rnrn“学院派”包括很多集团性质的大规模开发活动,外包项目,基于底层或硬件的开发,研究性的开发等等,体现在开发工具上多集中于C、C++、Ada等学院气息浓厚的语言,Java在某种程度上也可以算作其中,他们的特点是基础牢固、严谨、重视内在,又有些枯燥的味道。Web开发更倾向与灵活、开发效率和表现形式。rnrn然而由于各种原因,很多高等学府中的学生有一种很不正确的误解,认为Web开发是低于传统开发的,没有水平的,浮躁的,实在没工作的表现,从而看不起它。相对的,很多Web从业者认为大学生毕业后去的大公司的工作是死板的,缺乏创造性的,枯燥的,没有真才实学的,更认为大学里学不到什么,从而也看不起,甚至仇视大学教育(包括一些受过高等教育的人)。这是一个非常现实的矛盾。rnrn当然这个矛盾只是集中没有毕业的学生和从业时间不长的人群中,等到工作一段时间之后,相互接触得多了,都会觉得自己原本并没有体验到对方的真实内涵。传统开发中有很多富有创造性富有激情的内容值得互联网行业借鉴,而Web开发中千奇百怪的想法和时刻面对亿万用户的几乎无法预测的使用环境都是传统开发者觉得羡慕不已的,而两者结合更是体现了学院的严谨、知识的重要、来自用户的成败决定性,比如搜索引擎,比如企业级的B/S分布系统。rnrn一个精熟C语言并有着丰富经验的人,转行从事Web开发是比较快的,甚至可以说是如鱼得水,但是一个做了两年PHP而又没有什么其它的语言背景的程序员,在自身发展上就会受到阻碍了。任何一门语言上升到一定高度,它所面对的问题已经不再是这门语言本身。语言只是工具,使用工具的方法才是生产效率的决定因素。熟习了语言之后,慢慢地在工作中会碰到诸如执行效率、存储方法、算法优化等更多偏向分析而不是代码艺术的内容。通常对于一个没有受过系统的计算机教育,没有受过自认为“没用”的大学培养的程序员,在这些问题面前表现都是比较盲目、无助的。很多问题需要严整的数学分析,查阅参考资料需要比较好的英文水平和数学基础,聪明一点的会马上意识到大学基础教育的重要性,多半都会后悔上课睡觉了,呵呵~~rnrn一些人对于分析方法等抱着不以为然的态度,认识多是浮于表面,比如对于数据结构和算法的淡漠,觉得在Web开发中极少或不可能触及到这些内容。诚然,现在的Web开发脚本语言都有丰富的函数,灵巧的使用方式,多数已经不需要再像C语言一样声名变量、创建指针、计算内存地址、写排序算法。而且基于互联网的不可预知性,也很难有一个完美的算法解决所有情况下的问题,比如排序。程序员在这种情况下都是使用语言内置的各种功能在完成操作,当然我不是说什么都要从头开始自己写,那是莽夫做的傻事,但是我想,既然用了,多多少少也应该知道函数是怎么回事。自己写的function是函数,系统提供的就不是函数了么?不求看懂源码,至少也应该知道它是在做什么。每天追求执行效率和页面执行时间的程序员,更是忽略了系统函数本身的效率问题,把所有的系统函数都想象成了汇编中的NOOP这种单元操作。rnrnWeb开发中碰到的算法问题很少么?举一个小例子:iForum论坛(前年我在上海看过)中记载用户组权限的方法,是在数据表中插入一条类似11110010011100的字符串,每一位代表一种操作,1就是表示有权限进行操作,0就是没有。这种方式很简单实用,但是它受到Varchar的长度限制(虽然255种操作已经足够复杂了),而且字符串的计算效率又是低于数字,那么有没有想过这种算法的本质是什么呢?有没有想过优化它呢?rnrn中国古代有一套数学理论叫做“盈不足术”,例如,有十只盒子,第一个盒子里放一个盘子,第二个盒子里放两只,第三个盒子里放四只,第四个盒子里放八只……第九个盒子里放256只,第十个盒子放512只,即第N只箱子里放2^(N-1)只盘子,一共1023只。那么命题如下:在1023这个数字之内,任何一个数目都可以由这十只盒子里的几只组合相加而成(大家自己算算就知道了……呵呵)。rnrn那么1、2、4、8、16、32、64、128、256、512这个序列为什么有这么个魔力?这个数列的特点:1、每项是前一项的二倍,2、每项都比前面所有项的和大,而且大1。这个1就是关键,就因为这个1,它才可以按1递增,拼出总和之内任意一个整数。这个序列叫做超递增序列,它是解决背包问题的基础。rnrn对于一个整数,假设377,它的二进制表示为“101111001”,它就是由第一只、第四只、第五只、第六只、第七只和第九只箱子拼成的,对于一个表现了9种操作的描述,377就是这个描述下的一个实例,是一个权值。rnrn那么相比于保存这个字符串和保存这样一个数值,好处和坏处都在哪里呢~~很明显的,保存字符串的好处是运算压力小。我们可能听过一个故事,就是把这个超递增序列延伸到第64项,就是那个术士和皇帝在国际象棋棋盘上要米粒的传说。64项的和是一个天文数字!但是不要忘了,计算机本身就是一个只认识二进制的机器!(这点很多Web程序员都忽视了,很多人不知道位操作是什么玩意)有人担心数据库的int不够长,那么既然可以保存一个只有0、1组成的varchar字符串,为什么不能保存一个十六进制的字符串,有人规定varchar只能保存01吗?十六进制串的长度正好是二进制的四分之一,而十六进制到二进制的转化是非常直接方便的。rn以上就是这个权限串的由来,不知道有多少web程序员想到过这些……而一个C或汇编程序员看到这个字符串第一眼就会想起这是个十进制的15516(当然不是马上就算得出来)。rnrn由此引出的和web相关的,比如多选框的保存,投票选项的保存等等……rnrnWeb程序员需要学习一些数据结构、算法分析等知识,虽然在工作中不会使用得那么明显,但是这些概念是学习本身语言的一个很好的催化剂,它会让程序员更有效地理解资料上的信息,达到事半功倍的目的,也会在问题陷入苦处不得解脱时候帮助开发者理清头绪,以一个清晰的思维过程找到解决问题的突破点。rnrn阻碍程序员学习这些的原因,第一就是基础学科不扎实,比如数学。计算机划分为理工科是非常有道理的,计算机科学建立在深厚庞大的数学系统之上,至于如何学数学……这是功夫问题了。第二是心理障碍,觉得离开学校就学不好。自然学校是学习基础学科的最好地方,但是往往工作上需要的知识更贴近实际,在实际中学习通常会比在枯燥的书本上搬东西效果更好。第三是客观原因:从业者多半工作都很忙,业余时间很少(这几乎是程序员的标志),那么学习只能在工作中见缝插针,这种学习方式需要会用巧功,会联系。第四个就是信息来源。现在适合Web程序员学习,根据Web脚本语言特点编写的基础类书籍太少了!比如数据结构类书籍多半是以C/C++/Pascal这类强类型的严谨的传统语言为描述基础,操作系统原理多是以汇编等底层脚本描述,设计思想多是以Java这种纯OO的语言为主,我没有发现有使用Perl这种怪异的语言教授数据结构的学校。rnrn基于以上的研究结果,我们可以有条理地整理思路,多站在Web程序员的角度上考虑,做出一些适合这个特殊群体学习提高的有意义的活动。rnrnrn在下的WEB程序员说下你们的学历!rnrn 论坛

写给程序员(转帖)

09-27

你怎么过河?rnrn从前有个人来到一个偏远的山村,村里有条河,由于没有桥大家都只好淌着水过河。“这多危险啊!”这人心想,“我得给大家建一座桥!”回 到城里,他就出钱找人到村里建了一座桥。一年后,他又来到这个小山村,桥建好rn了,很漂亮。但是他惊奇的发现,人们依然是淌着水过河,很少有人从桥上过。他百思不得 其解,就赶到河边问一个刚上岸的村民:“河上不是有桥吗,你们为什么还要淌着水过河呀?”村民回答:“桥?太不方便了,你看我到rn桥边要走500米,过了河再回来还 要走500米,我从这里淌着水过河多近啊!”各位同仁们,你会选择如何过河呢?rn如果把做产品看成是过河的话,我们以前一直是淌着水直接过去的;而现在的CMM流程 就是河上那座桥,你又会如何选择呢?我们可以列出很多淌水过河的理由,时间那么紧急,你还要我们绕一圈多走路?那么多年都淌过去rn了,这次会淌不过去吗?我们都是好 水性,从桥上过岂不是失去了发挥的舞台?是的,这些都是理由,然而这些同志却忽略了淌水过河有多危险?河里有鳄鱼(缺陷),随时可能把你吃掉;河水湍急(人力不足),你随 时可能陷rn入漩涡,等你上岸时已经偏离目的地很远了;上游随时可能有山洪爆发(需求变更),把你冲的晕头转向;……想到这些,你是否对过去淌水过河的做法有点后怕? 当你历经磨难,精疲力竭的爬上对岸,却发现你和目的地的偏离rn远远大于那1公里时,你会想些什么?rn我们在推行CMM的过程中遇到的一个很大的问题就是“多走 1公里”的问题,很多人会说我们的时间太紧了,没有时间走流程,如果你给我足够的时间,我就会把流程走好!然而真的是这样吗?我们总是紧盯着那“1公里”rn,认为那 是一种巨大的投入;我们祈祷鳄鱼都睡觉吧,我们祈祷河水慢慢的流,我们祈祷上游风平浪静,我们祈祷我们可以安然的淌过去,到达胜利的彼岸!事实上呢?我们的确很少有淌不过 去而淹死的时候,因为我们都是冲浪rn高手;但是我们每天和鳄鱼搏斗浑身是伤,我们走的东倒西歪偏离了航向,我们被大浪拍打常常要喝几口水。我们愿意接受这么多的磨难 ,为什么就是不愿意走这1公里呢?我们再来看看从桥上走的人!他们无须祈祷什么,他们rn感叹鳄鱼的强悍,漩涡的惊险,洪水的汹涌;但是这些对他们都没有什么影响,他 们平稳的走在大路上;这一切源自他们选择了“多走1公里”。rn还有一种更可怕的情况,开始决定走桥了,然而走了400米以后,看到人家淌着水过河的已经到了河中央了 ,开始动摇了,终于决定还是就地下水吧!这才是真正的“多”走路了!很多项目目前都是这样,看起来走了流程,rn但是形式多于实质,比如需求跟踪矩阵,迫于QA的压力 花了不少人力去填写,但是填完以后就没有人看了,这就和种了庄稼却不去收割一样,浪费啊!我的老家有一句俗语,“馒头吃到豆沙边”就是形容这个!当你把馒头外面rn的 面粉快吃完,马上就要享受甜美的豆沙时你却放弃了,因为前面的面粉让你失望!你离你的豆沙只差这一口!rn选择正确的路,坚定的走下去,终归会有回报,人生如此,执行 流程亦是如此! 论坛

写给三十岁以上的程序员

06-14

rnrn本人80年生,这一般是个适合开始的,也是个容易总结的年份,总结就是一种创新,所以我的话就多。rn中国IT圈,是有传统特色的,你会找到江湖的味道。那么,混不好的话你就可能挨几刀或者走火入魔。rnrn做技术的你真的需要职业规划,个人战略,运气,勤劳,魄力,以及聆听自己的心声。rnrn切记一,江湖上的传说都留给别人吧,富二代,财团,那些争夺虚名的胜利者。rn切记二,心静了,也不能滥学,不然你会被半浅不深的技术淹死,半熟不热的噎死,千万别“以苦做舟”,没兴趣,不快乐的话,快点闪人,时间和精力有限,别等开进了胡同倒不出车。----入魔的rn我的一个同学R,做开发工作5年时,就嘴上总挂着转行,不想搞开发。心理的呼唤,没有理,况他也不忍失掉机会成本,因为不做技术,去新行业又拿不到高薪,由奢入俭难,然后先干着,一晃几年又过去了,嘴上又挂着转行,但这时可能就是被外界种种逼的。----挨刀的rnrnrn如果你没有保持对新技术的敏感rn如果你没有对技术掌握的成就感,好奇心rn如果你没有自己家里的开发环境和实验"码田"rn如果你没有技术微博和一箱子的书和案头的手册rn如果你没有最想深入了解的技术方向rn如果你没有无数个深夜面着电脑搞这搞那儿,忘记吃饭和睡觉rn如果你没有承担40岁后失业勇气rnrn如果有,全有。rn亲,那么恭喜你,我们进阶吧。rnrnIT带来的不是多少个职位和行业,而是一个时代。虽然你30岁多了,但是你是这个时代的建设者和亲历见证者,你有权要求发声音,也应该有了担当来发声音。rnrn认清大小环境rn中国的IT业还不是个完全市场导向的,因为这是共产主义国家。rn传统行业的信息化和新行业相比,后者才是IT圈新贵们蛰伏的乐土,但是急功近利。rn程序员想搞科研去大学,研究所,少在老板面前晃悠,等你真去了说不定,他主动找上你,在你眼前晃悠了。但我劝大家,IT只是工具和手段,应用科学需求量总是比理论高,就是个金字塔型的下端之于上端。rnrn事实上,程序员的可塑性是比较高的,但是当你怀着一颗空杯的心态+刻苦的努力,可以精通任何一种技术或系统,但是,你身在职场的话,有一件事不是光靠这些就可以搞定,那就是-------信任。rn做为码仔要取得boss的信任,就要各显神通了。rn 就像你会开车了,但没有执照的话,你会漂移也白扯,就不算是“龙脉”。rnrn但“龙脉”永远是一种稀缺资源的,所以,你所在的团体是否能与“龙”沾点关系,即使是“龙套”。但也不过于看重,因为有句话是,风水轮流坐,贵在争取和坚持。谁都愿意“吃肉”,不愿意“打狼”。rnrn在古代,好像没有DNA技术,仅有什么滴血认亲,如果你能让大家相信你是龙脉的话,就可以继承天下。rn而现在的企业中,各部门责任细分,各团队彼此配合。有时,你的一腔热血会受到冷遇。rn比如:A部门负责国外业务,B部门负责国内业务,而你是B部门的外语高才生,A部门的人都来请教你外语。可那又如何呢,你依然得不到A部门的核心位置。因为,这不是技术那个领域的问题了。AB部门的竞争关系,两领导对你的信任,你的外语是好但是业务又没有那么简单,等很多问题。此时,经验和人际关系渐显重要。rn那么,做好技术的同时,你要让自己变成正宗龙脉。这样你相当于有了“营业执照”,不然,你就是“不务正业”,为什么,一个简历上写满精通的各种开发语言的人找不到工作,因为,无法让人信任,他到底用什么开发程序最正宗。rn所以,在你羽翼未丰之际,不要秀出你的野心和傲气。因为,你可能还没开始“营业”已经有了竞争对手。哈,这里我也只能点到为止了,因为,我笔下虽有千言,但胸中实无一策。我可不会任何的手腕。我也比较郁闷于中国式程序员,就像是打麻将,维护好上家,约束压制好下家,方可和牌。rnrn记得刘墉写过一本书《我不是教你诈》,作者是想让你看透,看清一些东东,做个正直的小人。rnrn认清生存元素rn好的IT公司是应该有自己的擅长的领域并且能留人。就像天龙八部里的少林,藏经阁里的扫地僧。rn那些领域更适合你rnrnrn认清自己的风格rn你是哪类程序员,喜欢静,宅,喜欢看百家讲坛多过于娱乐频道。rn白天求生存,夜晚求发展rn人们从他的身上感觉到一股力量。rnrnrn以上是几年前写的,现在我在一个不以技术为主的,以业务实体更看重的公司(甲方是国企),这样的确是比较稳定的,对技术人员也很尊重,(一个有老程序员较多的公司坏不了多少),我放弃许多挑战自己的骨气和机会,只为稳定,也不知对不对,希望这观点别太深的影响你的判断。rn 论坛

没有更多推荐了,返回首页