现在纯粹的编程已经没有什么难度了。有问题问AI就行,我也很少用百度了,几乎绝大多数问题都可以靠AI解决。
有人觉得AI对于新手帮助比较大,但我觉得,经验越多的人,AI对于其帮助其实越大。反而是新手可能AI的帮助很小,可能很多新手都还是靠百度(我猜)。
为什么要用AI呢?
1.效率高,之前用百度,常见的问题和技术还比较好找到答案,但是一些少见的问题和技术就很难找了,但是用AI就能直接根据问题给出答案。
2.百度的程序员质量参差不齐,还存在很多copy别人的文章,造成内容缺失。其次,这些文章有时候并不是解决某个特定问题的,而是解决某一类相似问题的(尤其是实现什么功能的时候),这时候就需要自己对多篇文章进行筛选验证,费时费力。而用AI,只要问题描述清楚,它就能给到你答案。这也是使用AI的关键,搜索百度,范围要模糊点,搜索AI,问题要精确点。
3.现在的AI功能真的很强大,我是从ChatGpt出来没多久就开始用了,现在每天的编程都需要与AI打交道,可以说AI让我提升了很多的水平,我记不住代码,没关系,我知道有什么功能需要用到什么,然后剩下的问AI就行了。也可以说,要是现在没AI,我可能编写代码都不熟练了。
4.AI平台推荐,国内一般用通义千问吧,我觉得挺好用的。
5.刚刚第一次严格意义上的自底向上开发,是的,受黑马程序员老师的影响,我的开发风格一直都是自顶向下开发,也就是从接口入口,接口需要返回什么,底层方法再提供什么。这刚开始入门的时候很有用,我知道要什么,我就造什么。但是随着工作时间的推移,越来越发现,这种开发思路存在某种问题,当业务稍微复杂一点,开发起来思路就不清晰了,通常会遇到底层提供不了什么出参,或者底层缺失什么出参的时候就改上层,或者底层需要什么入参的时候,上层取创造什么入参。这就导致你原本上层写的可读性还不错的代码,因为下层方法的需要,进行改造,最后变得杂乱,甚至向上的方法都需要逐一改造。这时候你会陷入严重的自我怀疑,怀疑代码的功能性、健壮性,怀疑自己的开发水平。
通过长期以来的踩坑,我终于悟出来了合理的开发思路。市面上很多教程、包括培训结构都会教你设计模式,但是却没讲到底为什么。你知道这是为了设计规范、增加健壮性和可读性,但是你理解不了,只是生硬照搬,有形而无神,领悟不了精髓,其实对于开发起代码来,可能还变得不好理解了。但是现在我明白了,自顶向下的开发思路就相当于要什么,自底向上就相当于有什么,要什么的时候最后发现某样东西缺失,这时候可能整个结构逻辑都得重新设计,我已经遇到很多次了,这是致命的,浪费了先前的时间,并且后面所剩时间也被压缩,这时候是充满焦虑和紧张的以及自我怀疑。而有什么则不一样了,这相当于调用jdk的方法,工具类的方法,有什么就是什么,当你发现还要其它的时候就会另外从其它地方以别的方式获取。这样子,当你底层的资源都满足的时候,作为上层的方法只要进行组装和处理就可以了。并且当底层的方法进行严格的单元测试之后,你完全不会在遇到逻辑问题时候怀疑底层的方法,就像你不会怀疑jdk的方法一样(几乎)。这样子,当你排查问题的时候,你只需要排查上层的逻辑是否正确而不会每个方法都排查,轻松省力。而自顶向下则不一样了,你的底层方法都是为了满足上层的需求而开发出来的,有时候并不会进行完全的单元测试,因为它不是主动提供者,它是被动创造出来的,所以一旦遇到问题,自我怀疑的时候,可能觉得每个方法都有问题,都需要排查,费时费力,很奔溃,很怀疑人生。
所以对于需求来说,是要什么,我们根据要什么,自底向上的提供有什么。看看最后要的东西还缺失什么,我们是否有某种方式获取,或者创造出来。
以上是根据经验的自我理解,好的老师应该不仅教你怎么做,还要让你知道为什么,或许有时候知道为什么,比知道怎么做更重要,因为可以以此举一反三,就算不知道怎么做也能想到怎么做。
编程是一场哲学,从面相过程开发到面向对象开发,到后来的面相领导开发到现在的面向猜测开发,感觉越来越玄学。
。。。后续待补充