确实,WEB开发毫无技术含量。
早在十几年前,我就会WEB开发了。
只是,到目前,我还没有学完……
现在总结下来一共历程了下面几个阶段:
第一阶段:能跑就好、全方位开花第二阶段:全栈开发、整站落地第三阶段:并发挑战、容量挑战第四阶段:理论探究、行知结合第五阶段:阅读网站源码、探求本源第六阶段:构建地基、制造轮子第七阶段:构造规划、协调开发
同时本文也可以作为各位WEB开发者甚至软件开发者的进阶指南。
不过我的水平有限,更高的阶段还未开启。仅供参考。
第一阶段:能跑就好、全方位开花
我最早开始WEB开发的切入点是……是WEB网页设计。
对的,你没听错,网页设计!就是画WEB页面。当时加入了某校园网站。曾获教育部十佳网站,日访问在15万到30万之间。
所以我熟练学会各种PhotoShop技能。
当时设计的不少网页的源文件也都还在。刚在自己找了下作品看了下,那些作品放在十年前倒也还凑活。但,总叫人觉着怪怪的。
是的,当年的我也非常快发现了这一点:技术还行,审美太差!
我是我的业余职业生涯遇见了瓶颈。
我这还没有入行,就遇见了瓶颈!你能感受那种无助么。。。
于是我,转行了!
自此之后,我也会偶尔带带网页设计的新人,但守住底线,只传授技术,绝不出作品。
而后,我还是投入到新兴的前端开发工作中,并带起了一个前端团队。
这方面的工作做了两三年,熟读《CSS权威指南》,致使我目前看到鲑鱼都觉着熟知。
各种嵌套、定位、JQuery、浮动……都不是问题。当时最大的挑战在于:浏览器兼容。
有的老派的人在用IE6,而有的已经IE8IE9,更大的挑战在于很多人用那时十分热门的360浏览器、搜狗浏览器……各种浏览器对规范的支持各不相同,一片混乱。大家则是页面写一周,兼容调半月,苦不堪言。
再后来,我掌握了世界上最好的语言:PHP!
网页设计、前端开发、后端开发,我打通了!
于是,我一个人开发了一些小的站点,幸福感爆棚。
这个时候的我,还会Flash呢,用Actionscript写点交互动画更不是问题。还做过小游戏,高兴~
所以,那时的我自信地高呼:WEB开发没技术含量!
对于用到的工具是什么原理,管它呢!我的站点能跑!那样多人用!都说我是大神!
对了,在这一阶段,会CRUD+百度就足够了!多了没用!
第二阶段:全栈开发、整站落地
网页设计、前端开发、后端开发,全都会了,那还要了?
在学校么,闲着也是闲着!
拉了一帮人接活了!
不过,确切说是总有活找上来,有时看着学期初没什么事,就接了。
每个方向都找一个人,我做协调,四个人就能接手个项目。甚至,或者就某个方向的人不需要找,我顶上,三个人也能开工。反正我也会。
有的学院的网站建设之类的,直接接过来做掉!
这个时候遇见了服务器、域名、部署、升级、运维问题。
没事,兵来将挡,水来土掩。有百度呢!
过去接过香港高校的单子,是个实验室的项目。赚的都是港币!不过当时真没经验,铆足了劲要价,要低了人家还给机会让大家再报一次,还是要低了……真是没见去世面,不会要太高。
几个项目搞下来,发现技术毫无长进,就是不断重复。倒是团队磨合了不少,简直都快流水线作业了。几个人不需要见面,都能把活干了!
技术没长进,就说明WEB开发的技术已经到头了,肯定是如此……哈哈
所以,WEB开发不过这样。
所以,那时的我会悄悄地说:WEB开发没技术含量!
注意,要悄悄地!自己赚钱的东西,大声说,这不绝了我们的财路。
不过在开发中,也遇见了一些算法问题。
管他的,网上都能搜到!修改下,就能跑!
又不是不可以用!
第三阶段:并发挑战、容量挑战
之前做的项目都是能跑就好。简单来讲,能跑就是成功,不可以跑就再改!
但,进入公司正式工作开始面临一些新的问题:并发问题、容量问题。
譬如典型的,一个应用需要部署多个节点啊,多个应用的分布式节点之间互相依靠啊。依靠存在先后关系啊等等。
于是乎,分布式亮相了,携携带一众有关常识:分布式一致性、分布式存储、分布式计算、分布式锁、分库、分表、分流、读写离别……还附带了一众有关框架:KafkaRabbitookeeperRabbitMQRocketMqEtcd……
以上我就不列举了,大伙耳熟能详。
那段时间,我就主要在学习。
当然学习不仅仅是掌握用,也要考虑其达成原理。可以动手自己达成下。
比如下面是个RPC的最小达成,用来学习RPC就非常不错。
用极少的类、办法演示了RPC的达成原理,是一个学习RPC工作原理的好示例。而且那段时间我在参与一些集群部署的项目。就是通过网站来完成应用的部署、升级、配置等工作,涉及到制品管理、水平管理等每个环节……表面呈现是一个网页,后面东西一大堆……
但,我了解,那些都是纸老虎,没什么难的!
毕竟,WEB开发没技术含量,能有哪些难的。
第四阶段:理论探究、行知结合
并发挑战、容量挑战遇见的多了,我也学的多了。
功夫不负有心人,脑袋里终于成了一锅浆糊……
于是,我开始走上另一条路:理论研究。
我开始直接研究分布式理论,还包含有关的论文啊,都掏出来读一读……
特别是论文,这东西,就是一个引用链,越读越多。
对了,我研究生阶段也搞了些这个,但理解没这么透彻,反而是这个阶段的阅读让我对研究生阶段的工作理解的更深了……神奇啊……
这个阶段,WEB开发技术没什么长进。但理解透彻了。
这期间在设计一些分布式的系统。然后发现我开始会用理论模型指导系统构造了!这技能,就是妙手偶得之啊!
赚了。
我就说么,WEB开发有什么难的,读读论文就能顺便提高了。
第五阶段:阅读网站源码、探求本源
WEB开发也回了,论文也读了。整体框架也明确了。
什么各种中间件啊,在整个系统中的诞生缘由,进步方向,在理论常识的指导下,也都能理得顺顺的。甚至我可以设计一套出来。
哎?
这个时候问题来了!
那我设计的,和开源成品有没不同啊?我和人家的差距在哪?
这个问题,除去我,没人能给我答案:第一,周围极少有人熟知中间件的原理细节;第二,其他人也不了解我想如何设计啊。
于是,无法了,下水!
自己开始啃网站源码。
难!真难!
其他人写的上万行、上十万行代码,你要了解,能不难么?
当我啃了几个项目的网站源码之后,发现过程非常难,但收成真的非常大。
日渐地,我甚至觉着应该写一本书来帮助别的人阅读网站源码。
最开始,书中想向大伙总结网站源码阅读的办法和方法;又怕大伙觉着太虚,没实质的示例,所以直接以MyBatis的网站源码作为示例;又怕大伙读不懂MyBatis内核的网站源码,所以每一个章节前增加了阅读本节网站源码所需要的入门知识;既然网站源码都读了,于是便一边读一遍将项目的构造思想总结出来,教大伙一些构造思想。于是,书成了包括入门知识+真实网站源码阅读示例+构造常识总结+网站源码阅读经验总结的书。
是的,后来这本书真的写成了,历时许久,整整有400页。光配套项目就写了两个。
书厚本钱就高,于是想删减一些,结果出版社编辑老师觉着写的太棒了,不舍得。又不可以卖的太贵,最后也只能定个相对于400页是个极低的价格。
于是就有了这本《通用网站源码阅读指导书》,近期刚刚上架(可能不少门店还没有货,只不过预售)。
淘宝价格实惠不少,这个有货了:
官方正版 通用网站源码阅读指导书--MyBatis网站源码解析 易哥 构造师技术员提高网站源码阅读系统构造软件开发能力书本 电子工业出版社书写的比较诚心,不是奔着赚钱去的。不过为了编辑老师,我还是要多说几句。
400页卖100,价格就比较低了,然后编辑老师觉着这本书写得好,还要出繁体字版。
而我就怕卖的不好连累她。然后,一句“经济效益好当然好”让我觉着愈加对不住。毕竟,推荐常识是我的业余喜好,知乎不给钱我不也写的开高兴心。还时常丢出几个段子。
但出版书本却是编辑老师的工作。工作可不可以“经济效益好当然好,不好就当作为传播常识做贡献了。”
注:写书的时候为了大伙能了解,所以把MyBatis用中文注解了一遍,于是有了MyBatis中文注解版。这个不需要买书就能看,由于我把它开源放出来了,放在https://github.com/yeecode/MyBatisCN然后为了大伙读网站源码能了解,又写了好多示例项目,也开源了。这个就不在这推荐了,由于没书本内容,这类示例也就没了前后文,非常难对大伙有帮助。写书那段时间是最累的,上班写代码、下班写书写代码,基本是从早9点到晚上1点。体重一度重了20斤。所以劝大伙还是不要学我,身体非常重要。过去有一段时间我觉着不值得,目前到觉着还好,由于书写完后自制力约束我重新健身,目前身体恢复了。当然,这本书也得到了外方出版社的一定。所以,下面会在台湾发行繁体版。
假如买了,别忘了先读读前言,感受下一个读网站源码的技术员的自白。
不过总的来讲,编程不难,你看我,读读网站源码技能就提高了,还能写本书。顺便让身体体验下增重减重的感觉。有什么难的。
读网站源码一两年,我发现,我的设计策略和网站源码十分一致了。甚至我有不少地方有更好的策略。
所以么,看,WEB开发有哪些难!看看网站源码就能提高!
第六阶段:构建地基、制造轮子
理论也积累了,人家网站源码咱也看了。
那写代码一定就是统筹规划全方位设计了啊,复制粘贴这种事情离我是愈加远了。
达成功能也开始考虑各种设计模式、范式、软件水平指标、构造规范、构造风格……于是写出来的模块也愈加通用了。
这就不是轮子么?!
当然,工作上的轮子都是保密的轮子,不可以往外拿。
下班回家也写点小轮子玩,这个会开源出来。就比如下面的。
这类项目都很好,大伙可以珍藏。
高性能轻量级分布式权限系统强大且易用的操作日志记录系统,支持对象属性的变化剖析在程序运行过程中动态增删和切换数据源的工具上面都是我写的一些小轮子,大伙看看题目,喜欢的就去随意取用,留着以后自己造车就好。
业余写轮子挺快乐的,有时半夜忽然有个好的想法,可以开灯就写!自由度非常高!兼职就是技术员我们的乐土!上班写的项目是不可能如此的,毕竟,得考虑业务影响。
这灯很好,用了幸福感强,与我的超宽屏也非常相称。
对的,要想开源写得好,家里设施不可以少。如何选配工作电脑之类的,可以看我的这篇文章。
如何配置一台实用且性价比较高的办公类电脑?总之,搭建一个很好的工作环境,能叫你在家坐下就不想起来,打字如有神!对着笔记本写几个开源项目,指尖疼的厉害。我之前用K380,写了几十万字的书之后,手指都要废了。
还有,开源轮子写到后期,也得保证稳定和兼容。目前上面的ObjectLogger项目我就动的非常小心了,由于从联系我的人来看,应该不少人用了它。
就是么,轮子都能造了。WEB开发有什么难的!
当然,在这个阶段也规划开发了好过项目,涉及面非常广……Linux、PowerShell的脚本、FTP、文件存储等等,还给一些工具开发了一些插件,设计开发了很多系统等等。
日渐地就发现,WEB只不过一种用户交互的展示形式。其内在达成,需要各方面的常识。
组里前端小伙伴也在造轮子,什么SVG达成Graph的自由组装和动态编排、自由拖动的树组件啊什么的,都是他的头发换来的。也是厉害的非常。
第七阶段:构造规划、协调开发
能力越大,责任就越大。
上班造轮子、下班造轮子那可不可以,得负责项目规划开发啊。
从项目需要开始、然后模型、然后论证、定策略、攻克核心难题、排期、控进度、推广……
业务需要、人手、项目水平、扩展性……这类内外部原因都是要考虑的。
其中构造规划项目是最重要的,因此,要熟知各方面的常识:前端、后端、服务器、文件存储、分布式、各种中间件等等……
项目协调也是需要的,因此,每个需要方的讨论、策略的讨论、反馈地接收、项目汇报的筹备、项目方向的把控等等……
这方面我就不多说了,了解的也有限,慢慢学吧,我还年轻。
不过话说回来了,WEB开发有什么难的,把上面的都做好就好了。
一点貌似无关但非常重要的事情:
你要说真的的难题……从第一阶段到第七阶段,健身都不可以落下,头发也尽可能别落下。要困难倒在半路上。
我从研究生就一直健身,每周夜跑两三次,每次8公里左右。高峰期可以夜跑25公里、卧推85kg。
最差的时候,就是写《通用网站源码阅读指导书》的时候,明显感觉肚子上的肉有褶。整个人也非常虚弱。
无法,无论是写程序还是写书,都是不到一个阶段不好停下来的,所以常常一坐就4、5个小时。
目前日渐恢复了,体重、体脂都回到了标准值,腹肌也回来了。小米体重秤健康评分100,身体年龄20左右。我活过来了!
还是期望大伙在编程的前进路上必须要记得保重身体,毕竟,编程只不过兴趣和工作,而身体则是健康和生命。
继续说回到WEB开发。
其实,WEB只不过一种用户交互的展示形式,同桌面推广客户端、移动推广客户端、命令行一样,只不过一种展示的形式,是皮毛。
而软件系统最重要的应该是内在构造、算法、风格、组件,这类都是和展示形式无关的。
假如一个开发者还停留在用展示形式来衡量一个软件的难易程度的水平,段位不会太高。
同样的,假如一个开发者用编程语言来衡量软件项目的难易程度,段位也不会太高。
另外,评论中有一点我也比较同意。是说假如没强大的自驱、大神引导、业务驱动,一个人处在上面的每一个阶段,都会有自己到达了天花板的错觉。一旦如此,便会叫人长期很难进步,这是要克服和防止的。
我不是什么大神,也在不断学习中。但以上是我十年探索进阶的总结,期望能给大伙带来进阶上的引导。假如大伙读完能有收成,我也万分荣幸。
技术的道路上,多做、多学,原本会的也便不会了,原本不会的也便会了。
大伙好,我目前是一个高级软件构造师。
所以,表面上这是一篇逗逼文,事实上这是一张现在我能勾画出的进阶图。逗逼的言语,只不过为了能叫你读完,然后多些收成。
软件开发也一样,坚持做下去,就会有收成。
前进道路上的你我,一块加油!
为自己、为社会、或伟大、或渺小!
来,最后再来一句:WEB开发有什么难的?
我是构造师易哥,我会偶尔推荐软件构造和开发有关的常识。关注我,让WEB开发不再难。
在企业的正常运转里边,咨询是一个尤为重要的部分,假如企业想要从这一个部分使得自己在客户心目中的形象有一个最好的加分,那样就能处置400电话如此的一项事务,这项事务里边有着很多的设置,不只具备着比较强壮的功用,并且还可以为企业和客户之间的交流起到一个最好的话费分摊有哪些用途,可以更好地表现企业所具备的形象,在进行推广的过程中,更简略使得客户同意。
可是,很多企业在供给相应商品咨询服务的时候,都会遇见如此的一个问题,那便是有一部分顾客常常会拨打电话前来进行打扰,或者说是经过一些不理智的方法在电话里边进行相应的威胁,这会严重干扰到企业在这一个方面所供给的服务方面的水平,更要紧的便是,他关于客服职员自己的心理来讲,有着比较大的影响,或许会从言语上对客服导致比较大的伤害。所以说,这类企业都期望可以经过400电话里边所具备的相应功用,预防接到如此的一些电话,可以为以后所供给的服务降低很多的麻烦。
400电话如何设置黑名单呢?关于如此的一个问题,一些有经验的企业给出了相应的答案,期望可以经过自己比较具体的介绍,为那一些感觉生疏的人进行细心的讲解,使得他们也可以了解如何进行相应的设置,当然这类人也可以登录到处置这个事务的官方网站上进行相应的咨询,上面的员工也可以给出很好的答案。第一在进行这项功用设置的时候,处置这项事务的企业需要登录到我们的管理平台上面,上面会有这一个功用,那便是进行黑名单的设置,特别是在接听电话这一个方面,找到了那一些不好的号码,输入进来,就能起到一个最好的拒绝接听有哪些用途,非常重要的便是以后也不会再接进去这类电话,非常不错的预防了这方面所发生的打扰。
另外一个方面,400电话也可以覆盖到更广的地区,简略一点来讲,可以将某一个地区的所有号码,或者说是某一个段落的号码,加入到黑名单里边去,如此一来,是如此的一个地区或者说是是这一个段落的号码,都不会被接进去,可以更好的预防问题的发生。