每个月IT摘录201808--201809

1、技术前端

海量数据的解决方案:java

  1. 使用缓存;node

  2. 页面静态化技术;nginx

  3. 数据库优化;程序员

  4. 分离数据库中活跃的数据;web

  5. 批量读取和延迟修改;面试

  6. 读写分离;算法

  7. 使用NoSQL和Hadoop等技术;sql

  8. 分布式部署数据库;数据库

  9. 应用服务和数据服务分离;

  10. 使用搜索引擎搜索数据库中的数据;

  11. 进行业务的拆分;

高并发状况下的解决方案:

  1. 应用程序和静态资源文件进行分离;

  2. 页面缓存;

  3. 集群与分布式;

  4. 反向代理;

  5. CDN;

1. 有时候就跟你看了一百篇某个技术点的技术文章,真的开始写的时候,什么也想不起来,又得打开一篇,照猫画虎作完,却发现崩溃了。WTF。其实你并无学会。

我主张你去看原始的资料,主张你去读系统的书籍,主张你去研究官方或是优秀项目的源码。这些都是一手资料和优质 Demo。

2.软件高手是靠踩坑积累起来了。因此在公司里,一旦有了问题,无论是本身的仍是别人的,必定得总结,包括总结问题场景,总结排查问题的方法(如何看日志,以及看日志里的哪些要素),以及总结解决问题的方法(好比如何处理jar包冲突,如何经过分区等手段提高数据库查询的性能)。    

以我本身的体会,我最近半年遇到的坑比以前3年的都多,但我确实感受最近进步很快。靠实际解决问题是提高本身身价的最好办法,没有之一。

3.说下学习的方法。第一还得见缝插针地学,第二,必定得经过看视频或书,系列地了解到这个方面的知识点,先面到点,别反过来。第三,必定得边学边实践,若是开发环境没有,就本身搭建。第四,必定得经过面试(未必要去)等手段检验本身的学习方向和成果,一旦出现误差,得及时纠正。

    我就见过很多头脑灵活的人,就不断学不断面试,这类人学习的效率要远比闭门造车的人要高。

4.学习的资料是否适合你当前的知识水平。太简单,以致于整本书都在印证你的想法,让你以为它”很好读”;太难,你没法经过直觉跳过某些推导步骤,每一页的阅读都须要大量的思考,哪怕看完一整章,你也没有对这个章节的完整图景。

合适的难度,就是让你兴奋的难度,你能从中找到你过往的一些经验,也能看到不少全新的方法和观念,学完一章后,是否有一些愉快的想象,若是有,那么它的难度刚恰好。
5.找到学习资料后,不要浪费它。快速,完整地把它消化掉,不要中断,天天至少两个小时以上的专一,周末也不要停
6.源码阅读,尤为是针对你正在使用的第三方库。千万不要面试的时候,什么源码都未学习过
阅读源码要能回答两个问题:要解决什么问题+是如何实现的?大到整个项目,小到一个模块、函数,看的时候都要抱着这两个问题去看。看完了这两个问题能答上来,才是有效。
 7.除了图书,咱们还须要关注文档(reference)。如今不少框架和技术的参考文档已经很是好了。首先是文档的质量愈来愈高,如今技术都是协做的。Java程序员能够看看Spring Framework,Hibernate,Kotlin,Groovy的文档,质量都很是高。
8.底层技术博大精深,从语言、编程范式、算法和数据结构、计算机原理、网络、数据库、分布式技术,须要多花时间去掌握。
9.阅读源码,须要扎实的 技术基础+强烈的求知欲+耐心。
10.进行项目开发时,有一个共识——不要闭门造车,而要尽可能采用优秀的开源项目和技术栈——这样能够避免重复造轮子、避免掉进别人已经解决过的坑中,另外还能够帮助咱们快速学习社区大牛们的思想精髓。能够说,使用优秀的项目就至关于站在巨人的肩膀上,在促进我的成长、把控项目质量、保证交付进度等方便都有积极的意义。
11.当下最流行的项目和技术都有哪些呢?
  • Java Web 开发:   Spring系列几乎毫无悬念的成为第一
  • PHP社区: Laravel、Codeigniter等使用最广
  • Node.js社区:express、koa俘获了开发者的心
  • .Net开发: ASP.NET MVC 和CORE各领风骚
  • 前端社区: 以React、Vue、Angular为表明
  • 移动端开发:IOS、Android各占半壁江山
  • 数据库开发:Mysql、Oracle、MongoDB等

12.想自学成为优秀的java工程师,想提升水平就是作项目,光作出项目只能说到30%,把你作出来的东西用高并发,大数据,节点宕机,长时间运行去压,直到不出问题为止才能到80%。另外20%要在实际的生产环境去学,这个没办法,但达到80%的话,足够你应付Java高级工程师和初级架构师的面试了。

13.技术领域的含义是:选择到一个本身感兴趣、适合本身而且有发展前景的方向。这点很重要,由于工做时间久了以后,再考虑换方向一般是不容易的。

14.对于码代码,在你眼里不管这是一份工做、事业或者志业,均可以赋予其意义。有了意义就会有成就感,它会成为一种精神力量和内在动力,与工做造成一个良好的循环。

 15.编译器将*.java文件编译成*.class文件,而后JVM对*.class文件进行解译,它不关心这个类文件是由哪一种编译器生成的,只要符合类文件的文件格式便可。Java编译器将一段程序编译为等价的类文件。这些类文件实际上包含了半编译的代码——字节码。

16. 外面的世界很广大和美好,不能在家闭门造车。

17.IT行业不是你会几个框架,会一门编程语言就行的,它是突飞猛进的,须要不断学习更新知识的。
18.咱们首先是一个工程师,意味着后端工程师不要给本身设限贴标签,要学习通用计算机基础知识,解决某一领域的问题,条条大路通罗马,当你把本身当成工程师,并热爱这一个编程行业,保持学习态度,有一天会抽象到不在考虑先后端,不管先后端,语言仅仅是工具,解决通用问题才是工程师的思惟。
19.
Jenkins 是目前持续构建领域使用最普遍的工具之一,Jenkins 是一个独立的开源自动化服务器,可用于自动化各类任务,如构建,测试和部署软件。Jenkins 能够经过本机系统包 Docker 安装,甚至能够经过安装 Java Runtime Environment 的任何机器独立运行。

说直白一点 Jenkins 就是专门来负责如何将代码变成可执行的程序包,将它部署到目标服务器中,并对其运营状态(日志)进行监控的软件。自动化、性能、打包、部署、发布、发布结果自动化验证、接口测试、单元测试等等关于咱们打包测试部署的方方面面 Jenkins 均可以很友好的支持。

20.Spring Boot Actuator 是 Spring Boot 提供的对应用系统监控的集成功能,能够查看应用配置的详细信息,例如自动化配置信息、建立的 Spring beans 以及一些环境属性等。
21.web技术使用的是TCP协议,HTTP是基于TCP的,HTTP的模式是请求-应答。UDP协议是请求,不须要应答。
22.应该好好地静下心来,深刻地研究一些东西,本身写一些东西,而不是这也用过,那也知道,可是多半都是局限于仅仅见过,会用,却历来没有认真思考过其代码背后蕴含的思想,更少有人研究过源码,进而体会大师们在某些问题的解决上秉承的思想和思惟的风格。我的感受,这也算是国内大部分程序员最让人悲哀的地方了,固然这也与外界浮躁氛围的蔓延不无关系。
23.nginx能够反向代理、负载均衡、动静分离
24.Js是动态类型的语言。
对于那些想要在 JavaScript 中使用静态检查类型的人,能够去看看 TypeScript 。我从没用过这个语言,可是听别人说过关于它的一些很棒的事情。它直接与 JavaScript 兼容,且添加了许多有用的类型检查和其它特性。

25.SSO英文全称Single Sign On,单点登陆。SSO是在多个应用系统中,用户只须要登陆一次就能够访问全部相互信任的应用系统。它包括能够将此次主要的登陆映射到其余应用中用于同一个用户的登陆的机制。
26.业余时将本身从繁杂的业务和维护辣鸡业务中抽身出来,看看书籍和优秀项目代码,本身作个 side project,研究下底层原理,才是提高自身水平的正确路线吧

27.Https和Http的区别:

  • https相对于http加入了ssl层。
  • 须要到ca申请收费的证书。
  •  安全可是耗时多,缓存不是很好。
  •  注意兼容http和https

 28.学习编程历来就不是一件容易的事情, 不可能看看视频,看看书就学会, 须要大量的编程和实践。 编程虽然是极为辛苦的脑力和体力劳动, 但其中蕴含的创造的乐趣也是无与伦比的。 享受这个过程,乐在其中。

29.消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通讯来进行分布式系统的集成。经过提供消息传递和消息排队模型,它能够在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通讯、数据同步等等功能,其做为分布式系统架构中的一个重要组件,有着举足轻重的地位。

30.在/etc/hosts中,能够修改主机别名。。例如:192.168.1.112   datanode01

31.本身动手写框架,造轮子,对能力的提升有莫大的帮助。

32.从 JVM GC 的角度,JDK 11 引入了两种新的 GC。对于 G1 GC,相比于 JDK 8,  JDK 11具备:并行的 Full GC,快速的 CardTable 扫描,自适应的堆占用比例调整(IHOP),在并发标记阶段的类型卸载等等。
从 Java 类库发展的角度来看,JDK 11用HTTP/2 Client API,能够摆脱老旧的 HttpURLConnection。

33.想实现一套能知足高并发的系统,那么得了解负载均衡,限流,模块间的消息队列,缓存,热备冗余,数据库集群等知识。

二‘、工做

1.若是你曾经在一轮技术面试以后感受糟糕,若是你曾经感受你完全失败,是个废物,不应得到任何职位,只想住到远离计算机、技术和那些让你产生这种情绪的招聘流程的话。我想说,你并非一我的。

2.其实每隔3个月或4个月能够参加一场职位要求较高的面试,这就至关于一场考试,可以清晰的发现本身的不足。

3.多关注招聘网站的信息。 对应的工做经验, 岗位,市场最须要哪些技术,哪些知识?

4.2018年,BAT岗位级别及薪酬。http://baijiahao.baidu.com/s?id=1586661524671333517&wfr=spider&for=pc

5.找工做须要注意哪些点:

  •   公司按时发工资吗?  
  •   直属领导懂技术吗?
  • 领导懂技术,这样才好沟通,交待什么任务的时候就知道这个任务大概须要多少时间,也知道你究竟作了什么事情 方便工做的顺利进行
  •   公司目前的产品项目是什么状况?技术环境如何?
  • 直接问cto公司产品是个什么状况,来了之后大体要作什么
  • 互联网行业更新很快, 框架更新也快,要是不学习不动手作 ,那么整我的很快就会倒退,能力就跟不上别人了,就会被这个行业淘汰!!!
  •   加班多吗?是否996?

6.互联网产品的特色就是迭代速度快,通常一年半就能决出胜负,第一的一统天下,第二被第一收购,其余死翘翘。因此快速上线,快速迭代,就是生命线

3、社会

1.海南发展银行的决定。这是新中国历史上惟一一家破产的银行。

当挤兑发生时,第一要全额保证客户存款兑付需求,第二就是注入信心。可是,海发行既没有现金,也没有时间了,最终走向破产。
3.在人际交往中,关于你本身的事情,不管你开心也好,悲伤也好,

99%的人其实根本不关心你怎么样!他们只是在意他们本身感觉,本身的利益。

4.投资理财,“年收益率超过6%的就要打问号,超过8%的就很危险,10%以上就要准备损失所有本金”。




4、生活

1.保持一颗日常心,不患得患失。

2.当年纪愈来愈大后,我开始尝试减小加班次数。我开始用更多的时间和家人在一块儿,而不是坐在计算机前

3.精通一门技艺用来赚钱,而后实现精神自由。

4.什么是半衰期?
半衰期是物理学中的概念,指放射性元素中半数原子核发生衰变所须要的时间,半衰期越短,元素衰变得越快;半衰期越长,元素衰变得越慢。不一样元素的半衰期差异很是大,短的不到0.01秒,长的可达几亿年。
生活中咱们作不一样的事情产生的愉悦感,用收益值表示大小。收益值能够是心智、情感层面的,也能够是身体、物质层面的。这项收益值随着时间衰减的速度称之为“半衰期”。
咱们作的有些事情能带给咱们即刻的愉悦感,这些事收益值很高可是半衰期较短,好比刷手机、买一件漂亮衣服、玩游戏等;有的事情虽然不能给咱们立竿见影的愉悦感,可是随着时间的推移,收益值能够累积和叠加,这些事收益值很高、半衰期也很长,好比读书学习、坚持一项爱好、找到真爱等。一件事的半衰期越长,其影响越持久、越正面。

5、科技

6、其余

1.大学所教的编程,技术已经落后现有规范好多年。

相关文章
相关标签/搜索