关于技术

本文最后更新于:1 个月前

理性的思维并不比感性的思维要高级,我们灵魂的画像上也绝不应该只存在某一种色彩。

自认为对技术有着无限的热爱,赚钱只是顺带,解决问题对我来说,比赚钱更有意思,赚钱能力,只是证明一下,自己不是废材就够了,

宏图大志也没有,苟且偷生到也不屑。想自在,为自己而活,可是啊,人就不能完全的为自己而活啊,否则那就是自私。转念一想自在两个字说难也难,说简单也简单。简单的方式,赚点钱给父母养老,然后咱们那就五台山山上见;难的方式,花样就多了,房子,车子,票子,女子,我是一个子都没有啊😅😅

知乎上看到一个问题,当你发现你引以为豪的技术其实只是工具而已,你会感到悲哀吗

我需要感到悲哀嘛,技术本身就是工具,只是解决问题的一种更高级的做法,人类从石器时代,到青铜时代,再到现在的钢铁时代,技术和工具是相辅相成的。工具是技术,技术是工具,这并不重要,重要的是能不能巧妙的解决问题。

有次搞个Java的Springboot项目,往前端进行Json格式转换的时候,发现属性的大写首字母变小写了,这极大的不方便前后一致性,太艹蛋了。属性名JSON化时竟然会有变化,感觉Java的很多框架开发者有点死脑筋,命名规范这玩意就是个规范,你做框架底层没必要越厨代庖,强制采用这些规范。做底层的东西就要把自由度留给使用人员,别人才好在此基础上扩展。虽然可以通过一些注解什么的解决问题,但浪费很多时间。整体上来说,无论是Java的一些框架还是语法本身都为了规范牺牲了太多的自由度,很多时候都是做些没有什么技术含量的东西。

智能IDE,智能编程语言的飞速发展,让我感觉现在这个编程的门槛真的是低到没话说,但是啊,编程的规范,工具和语言可以帮你做到,但是编程的灵魂,思想,就不是一时半会能够形成的。并不能说你精通编码,就能写出任何东西。一个简单的权限框架,如果你不知道或者不理解一些简单的如RBAC权限模型,只会用if和else来写,你感觉这可能嘛,就算能,写出来的代码也是一个天坑,每加一个权限你就要多写一个if,这是噩梦一样的代码。不管你砌砖你砌的的多好,只会砌砖是建不出摩天大楼的。

说回编程语言,我对编程语言很是感兴趣,我喜欢研究不同类型的语言,动态语言,静态语言,弱类型,强类型。Java,Javascript等等,对于JS这个语言很奇怪,我有点搞不太明白,动态语言花样太多了,一个this的指向问题,就能让人头痛很久,还有闭包,JS的作用域可以说是诡异到让人难以接受。回调函数,我到现在都不是很懂回调函数的操作原理,怎么能把值传进函数的参数里面,这对于我学Java入门的我来说,这种操作这太不可思议了。我还得学习。判断自己对JS的掌握程度,可以去看Jquery的源码,Jquery实际上算不上框架,更多只是一个JS的语法糖工具,如果能看懂里面一些花里胡哨的操作,那么你的JS水平实际上已经很可以了,对于JS这门语言,又爱又恨。后来又了解了TS,对于前端我是很疑惑的,因为现在没有一个标准,前端开发有JS党,而现在一些框架又转而拥抱TS,Ts类型语言需要IDE的支持才能发挥出静态类型的优势,而VSCode,虽说是使用TS开发的,但是语法提示并不是那么友好,起码给我的感觉不是那么友好。框架虽多,但要记住,原生JS的才是你的立身之本啊。框架可能会过时,原生JS也有可会过时,但相较框架来说概率极低。

Kotlin,算是一个智能语言,这语言对于自然语言十分友好,带来的副作用就是,编译成机器语言时有点慢。智能,符合编程语言的设计哲学,怎么说呢,谁用这个语言,写出来的代码基本都是十分符合编程规范的代码,面向对象语言的设计规则是被它给玩明白了。Kotlin和Java一样是jvm语言,和Ts对应JS一样,Ts里面是适应JS的,Kotlin里也是能写Java的。这是一种包容的哲学吧。

Java,springboot3.0最低的JDK版本为17.0,一些固守Java8 的企业和公司,你发任你发呗。技术是需要创新的,Java不是没有发展,而是发展了一直没人用,不停的吐槽Jdk8的槽点,然后造一些轮子,实际上一些痛点,以及轮子,Java新特性中已经有了,比如大家常用的Lombok插件,JDK17中已经不需要这个插件了,看过每个版本的新特性介绍,忘了,我不喜欢用Lombok所以我对这个特性我记得比较清楚。其他的性能,多线程,GC等等优化,这个我不是太懂,也不需要懂,程序跑的动,跑得快,跑的稳就行。

实际上每种语言类型里你学一种就行了,因为同类型的语言差不多,编程语言本质就三个东西,变量,循环和条件控制。我经常调侃人,一个编程语言我会定义变量,会if,会for,就已经掌握核心技巧了,至于方法和函数,这两个实际上是一个东西,这个应该很简单,不管写法怎么变,核心在那,管你怎么变。参数值,返回值,访问域控制,这些东西不会变吧。

AOP,面向切面编程,这个编程思想上的不一样了,一般都用来弥补面向对象上的一些不足之处,在不改变源码的情况下,做一些增强操作。如果不考虑多人开发,这个玩法就多了去了,你甚至可以根据方法名或函数名来进行增强操作。考虑多人开发,那就老老实实的加注解吧。

女子,夜景


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!