Shiro认证详解

作为一名职业开发者,我倾向于把时间投资在那些对我的职业有帮助的事情上。

无论你学习了多少种编程语言,你需要遵从Bob Martin在《代码整洁之道》给出的编码和设计原则,才能成为一名专业的程序员。它是在你的编程职业生涯能给与你最大帮助的技能。
以上所有清单的内容,列出了每个软件工程师都该学习的5种编程语言。
学习能提供不同编程范式的语言,是提升编码技能的最佳途径。它能帮你有效地解决日常任务。
理想情况下,一个程序员的工具集里,应该包含一个接近底层系统的语言,比C或C++;一个面向对象的语言,比如Java,Pythong或C++;一个函数式编程语言,比如Scala或Haskell;一个强大的脚本语言,像Perl、Python、Ruby和JavaScript。
时间过的很快,已经来到了2020年的年末,因为疫情的原因,我甚至觉得今年还没有开始就结束了。来到博客园也有了3年了,2017年大四的我报名了一个嵌入式的培训班,因为物理专业不好找工作,花费了家里2万大洋,在培训班老师的指导下,选择了博客园,写下了一篇博客。说实话,我觉得我在培训班中学到了好多好多东西,现在想想包括基础语法(C语言),简单的数据结构,算法(SVM PCA),系统设计(C写抄一个爬虫项目)等等。学的很多,学会的几乎没有,不是说培训班老师讲的不好,主要还是自己基础太差了。因此最后投递简历的时候,浙江的大公司,大华、海康都没有面试的机会,唯一面过的是宇视科技。我记得很清楚,宇视给我开了5000的薪酬,好像还是外包岗,说一年后给转正有6000块。当时的我一心想要留在杭州,那时候的杭州房价已经达到了2W了。我掐指一算,这个工资水平是买不了房子的啊,一个月基础生活费都要3000以上,还能攒多少钱呢?最后我决定参加考研二战,回到老家复习备考。
再见five is five。考研二战期间完全学不进去,果然考试成绩也就和一战大差不差,相比于第一次无法接受考研落榜,国家线都没有过的痛苦,这一次,我有了一丝选择的机会,去读非全日制研究生还是去工作。对于有一年的空窗期,为了这些沉没成本,肯定是选择了非全。虽然他不好听,受到社会的歧视,有书读总比没有强吧。受到复试的影响,决定基础十分差的我,决定开始吭经典书,CSAPP。
学渣就是学渣,看了两天就坚持不下去了,博客也没有更新几天。想了想自己还是对linux感兴趣,来学bash吧。然后就开学了,从老师那边得知应该要做深度学习,就又开始了学习python。其实python还是坚持下来了,因为自己花钱买了课,淘宝的盗版课程,看了好多,但是最后没有整理放到博客园上面来。而且本地写的是在txt上的,放过来排版是针对麻烦。最后就不了了之。后面也陆陆续续写过一些博客,其实完成没完成很明确,如果是上的课,那肯定是完成了,因为要期末嘛,如果是自学的内容,那都是半途而废了。总结一下:
《CSAPP》【40%】看了很多,但是博客没写,后面写在纸质笔记上。《python基础》【60%】看了很多,写在txt上,后面的关于python连接数据库,爬虫,后端啥的都没有看
《西瓜书》【40%?】 忘记了,大概也就是这几篇博客写的学到了,其他的要么没看,要么看了也没看懂。不过不重要了,以后反正也不搞机器学习了。《逆向工程》 书其实也没有看完,但是还是完成了一次逆向工程的作业了。虽然是对着52pojie上抄的。
《图论》 努力学过,曾经学的还行,现在已经忘光了。研一上学期就这样差不多草草的技术了,也没学到个啥。研一下开始,就开始学习深度学习,研究了一下Faster R-CNN,看了看吴恩达的入门视频笔记,开了一门我最感兴趣的linux内核课程。第二次“重学”python。
《linux操作系统内核结构》这既是一门课,也是我给自己挖的一个坑,填了好久好久,到现在还没有填完。中间停停动动,真的很慢。但是以后有机会还会补!
【Faster R-CNN系列】 这个是对着tf版本的源码阅读以后学习的,也是这个时候,发现研一学的除了基础语法其它啥也不会,什么包模块啊,装饰器啊,lambda表达式啊,都不会。这个系列算是我对深度学习中最重要的一部分了吧。
这也是我努力学习TensorFlow和Keras的时期,google的开发人员,真的让我一言难尽,我经常觉得自己是一个运维,主要目标是把google大佬们开源的代码run起来。最终我倒在了TensorFlow2.0刚出来的时候,在TensorFlow1.3刚更新,TensorFlow刚出来有了eager essentials的时候,我渐渐的投入了pytorch的怀抱。最近在逼乎上说tf2挺好用,发展的真的很好的时候,我心情是复杂的,我从一个坚定的TensorFlow使用者,到一个TensorFlow的黑粉,逢人就劝入门torch,再到现在发现torch也不是那么完美,Keras也有他优秀的地方(比如Keras的summary函数,可以显示参数量)。觉得其实每个框架都大差不差,都是为了同一个目的的不同实现过程。选一款社区活跃的,用起来之后,再了解一下另一款,加几个轮子应该就可以用的顺手了吧。写到这里,不由的感慨,是MongDB,还是redis,还是Tairs。选择Flink还是Kafka。都是了解,使用,对比,然后在自己想着补充的一个过程吧。【下次做个TensorFlow和pytorch的对比补充版!】
其实,后面有抄java基础系列的笔记,但是就是抄写《java核心技术 卷一》这个部分放在github上。算是java的入门了吧。
找工作前面大部分都是基础知识的学习,到了研二下,疫情左右,就开始功利的学习了。SSM,vue,OS,计网,数据库,都是学习的重点,这个部分,也是因为当时时间紧迫,几乎没有时间写入博客园,也觉得没有必要,值得一提的是,这个时间段,我当了linux内核课的助教,算是第二次继续学习内核了,又写了几篇相关博客。也是凭借这些东西,能让我找个还算可以的工作吧。
实际上,我觉得自己的内核学的真的不好,但是又真的不知道该怎么去学,学来干什么。机缘巧合,以为自己要成为一名客户端开发了,所以买了一本android的书,抄完。算是完结了吧。我不太像再用更多的时间去研究他了。Flutter有缘再会。
未来
哎,写到这里,觉得自己挖的坑好多,不会的也好多,需要学习的也好多,真的很难受。展望一下2021年要写哪些博客吧,立个Flag,努力完成:
netty系列博客:之前自己决定学,学到现在已经丢了,明年首先捡起来,完成了再说kafka系列博客:包括kafka入门,kafka和流计算之类的内容。仅次于netty,亟待学习的一个方向
设计模式:课都买了,肯定要看完。顺便出在博客园上吧。redis:面试瞎学了一些,现在想看看源码学习一下,虽然我也不知道想学什么。
微服务:其实kafka,redis,微服务是买的三本书,这三本书作为明年的第一完成任务吧!刚开始学编程不久,听说过什么是设计模式
由很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的
阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的好处。代码写着写着,字节都没有意识到使用了设计模式,并且熟练的写了出来。
设计模式介绍
设计模式是程序员再面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是 某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的时间的试验和错误总结出来的。设计模式的本质提高软件的维护性,通用性和扩展性,并降低软件的复杂度。
设计模式分为三种类型,共23种
创建型模式:单例模式,抽象工厂模式,原型模式,建造者模式,工程模式。
结构型模式:适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式
行为型模式:模块方法模式,命令模式,访问者模式,迭代模式,观察者模式,中介者模式,备忘录模式,解释器模式(Interpreter模式),状态模式,策略模式,职责链模式(责任链模式)
注意:不同的书籍上对分类和名称略有差别。
单例模式
单例模式介绍
? 所谓类的单例设计模式,就是采取一定的方法保证再整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供了一个取得对象实例的方法(静态方法)。
? 比如Hibernate的SessionFactory,他充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactoury就够,这是就会用到单例模式。
单例设计模式有八种写法
饿汉式(静态常量)饿汉式(静态代码块)
懒汉式(线程不安全)懒汉式(线程安全,同步方法)
懒汉式(线程安全,同步代码块)双重检查
静态内部类枚举
饿汉式(静态常量)
步骤如下:
构造器私有化(防止 new)
类的内部创建对象
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...://github.com/threebb10/wnkjpyqzbs/discussions/167
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...://www.github.com/threebb10/wnkjpyqzbs/discussions/175
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
https://github.com/threebb10/...
https://www.github.com/threeb...
http://github.com/threebb10/w...
向外暴露一个静态的公共方法。gentInstance

代码实现

public class SingletonTest1 {
public static void main(String[] args) {

你可能感兴趣的:(javascript)