那些年我的粉丝们向我请教的一些问题

不得不觉写技术系列相关博文已经持续了五年了,从最开始的博客园,到自建博客,再到微信公众号。这五年来,很多做技术相关的小伙伴们(包含我的粉丝在内),向我请教了不少问题,有的问题是我擅长的领域,有的领域虽然我不擅长,但我结合自己的以往积累,通常一些思路还是可以给出来的,这些思路让一些粉丝朋友们得到启发,最终解决了问题。在这个过程中,我得到了成长,粉丝朋友们也亦如此。

核心一句话,我从没有觉得自己多么的厉害,只不过比一些小伙伴们多踩了一些坑以及多花了一些时间学习积累和向一些优秀的朋友学习罢了。

这里我借用韩愈《师说》中的两句话来与大家共勉:

  • 1.是故无贵无贱,无长无少,道之所存,师之所存也。
  • 2.是故弟子不必不如师,师不必贤于弟子,闻道有先后,术业有专攻,如是而已。

一、青岛OJ如何修改前端以及重新发布修改后的前端?

按照下面五个步骤执行即可:

  • 1.修改前端源代码
  • 2.本地npm run dev运行查看修改后的效果
  • 3.确认修改效果没问题后,执行bash deploy/run.sh脚本
  • 4.打包无问题后,上传到对应文件夹
  • 5.docker-compose重新构建

打包相关命令:

1
2
cd dist
cp -r ./* /home/admin/OnlineJudgeDeploy/data/backend/dist

do-compose重新构建命令参考:

1
2
cd /home/admin/OnlineJudgeDeploy
docker-compose up -d

二、关于Nginx一些相关提问?

如如何配置HTTPS、静态资源映射、代理中间件、跨域、限制连接、限制下载速度、指定IP访问、请求体大小、负载均衡、安全策略等,均可从下面这篇我总结的文章找到(这篇文章帮助不少小伙伴解决了他们在实际中使用Nginx的过程中遇到的一些问题:
深入浅出Nginx之实战与架构

三、如何搭建青岛OJ?

关于如何搭建青岛OJ, 我以前写的文章可以参考:
https://www.cnblogs.com/youcong/p/10085387.html

由于这篇文章是4年前写,不能保证完全可以,所以我建议该粉丝朋友,可以参考青岛OJ官方文档进行搭建:
https://opensource.qduoj.com/#/onlinejudge/guide/deploy

青岛OJ搭建非常方便,是我当初和创业公司的小伙伴们调研的几个中最好搭建的一个。

四、VsCode插件怎么设置自动更新?是否有API可以实现自动安装插件?

写API请求,以次来实现插件更新,请求对应的API,下载插件到本地,调用VsCode重启命令即可。

关于VsCode使用WebView通信,可以参考我写的这篇文章:
https://www.cnblogs.com/youcong/p/10322078.html

五、作为一名运维如何提高工作效率?

我在我对运维的思考这篇文章中提到的五点可供读者朋友参考:

  • 1.Linux命令是基础,万变不离其宗。
  • 2.自动化。
  • 3.要懂业务。
  • 4.要有一套完整的运维机制。
  • 5.适当了解前后端。

六、如何做一个生成报告之类的功能?

就技术层面有两项技术可供选择:

  • 1.Poi与Freemarker结合在一起实现。
  • 2.单纯地基于Poi-tl实现。

由于我采用的是Poi-tl,可参考我以下两篇文章(一篇告诉教你怎么用,另外一篇告诉你实际应用中会遇到哪些问题以及这些问题是如何被解决的):
开源项目之word模板引擎
基于报告之复盘

七、如何使用Java爬取网站数据?

这里我要提醒广大的粉丝朋友们两点:

  • 1.爬取的数据不能用于非法盈利。
  • 2.爬取网站数据的过程中不能把对方的网站造成不可用状态。

基本上可以概括为:只要不违反法律规定就行。至于其它的,自行判断即可。

就Java爬取网站数据,我写过一些文章,可供读者朋友参考:
分布式架构之数据爬虫实践落地
深入浅出分布式爬虫框架之WebMagic
爬虫与反爬虫策略思考

八、如何将VsCode中的pvs插件的效果搬到PC端,并通过网页访问且用户看不到源代码?

我过去虽然没有遇到这样的问题,并不妨碍我对该问题有对应的解决思路,通过我与该读者的提问互动,我给他提供了两条思路来解决这个问题:

  • 1.看源码并模仿,将其抽取为API。
  • 2.找现成的解决方案。

基于现成的解决方案,我找到了三个开源项目供其参考:

LogicFlow:
https://github.com/didi/LogicFlow

joint.js:
https://github.com/clientIO/joint

GoJS:
https://github.com/NorthwoodsSoftware/GoJS

九、作为一名技术者如何搞钱?

如何赚更多的钱是每个人都关心的一件重要事情。我在2021年写过这样一篇文章技术人对赚钱的思考与摸索

大致写了十个方面的内容,分别如下:

  • 1.自媒体;
  • 2.网站;
  • 3.外包接私活;
  • 4.在线课程;
  • 5.开源项目;
  • 6.网店;
  • 7.写作;
  • 8.投资理财;
  • 9.升职加薪;
  • 10.创业。

这10个方面的内容,我并没有做的多么成功,但都尝试过。而这些尝试便成了我这真正意义上的五年一部分。在这个五年里,公司倒闭过,也遇到薪资拖欠的情况,也短暂的体会自由职业者,也和小伙伴从零到一取得了成功,同样也因为自身的能力和付出在某公司加薪过。

有的朋友可能会疑问,觉得作为一名做技术的,这么的物质搞钱是不是有点本末倒置?

关于这个问题我也早在程序员如何用技术变现?已经回答过了,我当初的回答是(现在如果有人问我,我依然保持这样的回答):
有人说,技术变现变了味道,偏离了技术的初衷,是不尊重技术的行为。在我看来,技术变现是尊重技术的一种重要体现方式,并无变味。
只有当你的物质基础得到很好的保障时,你才有可能不断的高产出,输出更多有价值的东西去帮助去影响广大的小伙伴们,从而使得这个行业不再那么内卷以及良性循环而非恶性竞争。

十、我是如何坚持写文章并持续五年多时间的?

写文章很简单,但也很难。简单的是,随时随地都可以写,难的是长期坚持写。

那么我是如何坚持长期写的呢?注意一点:长期写并不等同于每天都写,因为生活或工作很多事情会牵扯到你的精力以及时间上的安排等。

这里我引用我三年前的回答(以下内容来源我三年前写的这篇文章致所有的开发者们):

1.首先说说关于为什么要写博客?

写博客的目的很简单,就是为了总结和记录,记录工作中遇到的问题,总结项目的得失或者是自己没有深刻理解某个API导致出现了某某问题等。
如果再往高度说,就是为了分享。分享自己遇到的坑以及是如何填了这个坑及其自己到底是因为什么原因才落入了这个坑。在写的过程中,也是让自己在思考,经过深度的思考和总结,能够避免再度重蹈覆辙。

2.那么写博客的好处有哪些呢?

  • (1)提高效率(比如我需要搭建Ubuntu16.04的项目环境时,我直接就可以参考自己的博客来实现快速搭建)。
  • (2)深究问题,提高知识深度。有的时候解决一些问题时,我们往往都满足于解决了就行,而非深究这个问题,这时再写博客的时候,我就会问自己,为什么会出现这个问题,有时候弄清楚为什么比怎么解决更重要,因为当你知道了为什么时,就基本上已经有了如何解决这个问题的思路。
  • (3)引导新人和帮助同事。特别是团队带新人的时候,有的时候新人遇到一些问题(这些问题基本上都是老鸟们已经遇到过),这时新人遇到了时,你可以将你的博客分享给他,让他自己看,这时博客就可以起到引领新人的目的(张开涛先生曾经写博客系列文章也是这个目的),当然了,如果时间比较宽裕的话,可以告诉他问题的原因和解决思路;
  • (4)知识系统化。我认为无论学什么编程语言和框架都需要系统化地去学,像比如HelloWorld这样的例子,基本上都能学会,有不少朋友仅仅满足于拿这个技术跑起来一个简单的例子就表示自己已经掌握了这门技术,就不再继续学习下去了,除非公司真正的要用到时才去比较系统的去学一下。比如曾经的我就是如此,曾经的我Python和Node.js我都学过,但是现在的话,留下的只有Node.js,Node.js还是因为最近对Settings-Sync插件二次开发的时候才去比较系统地去学习。知识系统化的目的在于让自己所储备的知识树更加扎实稳定。
  • (5)让思路更清晰。写作的同时也是理清思路。特别是开发过程中,思路清晰很重要,思路不清晰基本上等于无用功。

3.有人说,我文采不好我写不好怎么办?

我对此的回答是我文采也不好啊。写博客的主要目的是让自己总结和记录而非一定要在此中展示文采。其次在写多的前提下,慢慢让文章具有条理性,然后分享给广大的朋友们。至于文采方面,放眼古今中外又有哪一个天生就写的一首好文章的呢?也许有,但我不知道。

十一、怎样跳槽才算的上最佳的跳槽?

我的回答是,每个人的情况不一样,衡量的标准就不一样。我在去年九月份的时候写过这样一篇文章谈谈跳槽,该篇文章回答了两个问题:

  • 第一、为什么要跳槽?跳槽的真正目的是什么?
  • 第二、跳槽应该规避的不利因素有哪些?

当然了,这篇文章所说的不一定正确,因为当下的世界是不断变化的,所以要依据自己的实际情况而定。

十二、如何面试?

每个人找工作,必不可少的,都会遇到面试,哪怕外包也亦如此。关于面试我个人不能条条框框的给你们列举一堆建议,因为大家的实际情况不一样(工作年限、职务、技能、学历、证书、软技能、行业等),但我以我自身的一些经历告诉大家我的一些深刻体会是什么,所以便有了这篇文章:
那些年印象深刻的面试

十三、遇到裁员怎么办?

基本上只要公司按照规定N+1赔偿问题就不大。那么剩下的就是如何寻找下一份工作的问题。
今年是魔幻的一年,我司已经历了两轮裁员,至于下轮,时间未知。
我当初在写爱奇艺裁员事件之探讨这篇文章的时候,我司发展一切都挺好的,正如我在2022年1月日写下的2021年度总结提到的那样。

关于裁员相关的问题,今年我的一些粉丝也向我提到了这个问题,关于回答,这里我不便公开,因为基于每个人的情况不一样,我与其做了大量的沟通。最后引用我在爱奇艺裁员事件之探讨提到的如何应对未来可能的裁员的六点看法(仅供大家参考):

  • 第一、保障较为充足的现金流(可以叫家庭储蓄备用金,也可以要紧急备用金,主要用于应对家庭或个人可能面临诸如失业和其它突发影响到生存的情况);
  • 第二、提高自己的专业能力(提高自己的能力总归是没错的);
  • 第三、积累人脉(关起门来搞建设是不行的,还是得走出去多结交一些能够帮助到自己的良师或益友);
  • 第四、有一定的挑战精神,敢于尝试一些新鲜事物,有助于打破旧有的局面;
  • 第五、要有居安思危的意识,不要觉得其他公司大规模裁员不会影响自己(有一种东西叫做多米诺骨牌效应,意思是指在一个相互联系的系统中,一个很小的初始能量就可能产生一连串的连锁反应。);
  • 第六、要有一个健康的身体(健康的身体既能省钱也能在处于不利的环境下多一些其它的谋生之术)。

换句话说,我明天被裁了该怎么办?
与公司协调好,按照法律流程,公司给予我赔偿,如果有需要交接的,交接好即可。然后接下来,我并不会马上就找工作,因为我想在这个空档期去做一些事情,当然了,我现在也在做,至于是什么,目前不方便公开。2020年我在三个月的空档期做了两个尝试,第一个尝试是完成我的小说家梦想,第二个尝试是自己接活来赚点钱,两个尝试都做了,第一个尝试的结果是我的小说因为某种原因被封了;第二个尝试的结果是赚了点钱,但不足以让那个时候的我养活自个,所以之后,我就开始正式找一份工作了。有人问我是否后悔,我的回答是:
我不后悔。因为人生中的任何一项有意义的经历都是有价值的,这种价值是不能用金钱这样单一的指标来衡量的。

总而言之,小伙伴们要明确一点,无论是因为什么原因被裁,都不要怀疑自己。如果你是因为能力不行被裁,没关系,发现自己的短板就去弥补;如果你是因为公司经营状况问题导致被裁,没关系,在寻找下一份工作的时候,当目标公司的薪资待遇能够满足你的期望时,着重关注一下公司的经营情况(天眼查或者脉脉以及其它第三方可查找了解,也有例外的)。

十四、总结

这些年给予很多人解答了很多问题(我在解答的过程中,其实我自己也在不断的成长),问题的数量预估至少10万以上。这些问题有的基于我的博客文章,有的基于其工作中遇到的问题,有的基于刚毕业对自己的未来很迷茫,有的工作多年感觉自己没有成长,有的基于自身职业生涯的一些困惑,有的基于生活相关的、有的基于微信社群、有的基于论坛等。有人觉得10万以上是不是有些太夸张了,我的回答是,一点都不夸张,不要忽视点滴的积累(当量变达到一定的数量时,便会产生质变)。我觉得每天的自己都会有很多疑惑,近来不断阅读与大师对话,有的疑惑被解答了,有的还没被完全解答,虽然没有被解答,我也毫不气馁。
最后分享我的博客给大家,一个是基于Hexo搭建的,一个是在博客园写的。希望我的文章,我的博客能够给大家更多的启发,传播更多的正能量。

Hexo博客地址:
https://youcongtech.com/

博客园博客地址:
https://www.cnblogs.com/youcong/

文章目录
  1. 一、青岛OJ如何修改前端以及重新发布修改后的前端?
  2. 二、关于Nginx一些相关提问?
  3. 三、如何搭建青岛OJ?
  4. 四、VsCode插件怎么设置自动更新?是否有API可以实现自动安装插件?
  5. 五、作为一名运维如何提高工作效率?
  6. 六、如何做一个生成报告之类的功能?
  7. 七、如何使用Java爬取网站数据?
  8. 八、如何将VsCode中的pvs插件的效果搬到PC端,并通过网页访问且用户看不到源代码?
  9. 九、作为一名技术者如何搞钱?
  10. 十、我是如何坚持写文章并持续五年多时间的?
    1. 1.首先说说关于为什么要写博客?
    2. 2.那么写博客的好处有哪些呢?
    3. 3.有人说,我文采不好我写不好怎么办?
  11. 十一、怎样跳槽才算的上最佳的跳槽?
  12. 十二、如何面试?
  13. 十三、遇到裁员怎么办?
  14. 十四、总结