simplicity is prerequisite for reliability

前些天和同事探讨一个系统该如何设计,有些心得记录一下。同事想要设计一个任务执行系统,其中有一个核心驱动部件,以有向无环图的形式来描述任务之间的依赖关系,使得没有前后依赖的任务可以并发执行。任务的实际执行发生在多个外部系统,任务执行系统主要负责任务调度以及状态更新、进度展示等。

同事找我探讨的原因是他发现「如何简单地发现一个任务所依赖的任务已经执行成功」越发成为一个困难的事情,比如任务 C 依赖任务 A、B 先执行成功,那么需要为 C 分配一个线程,定期去询问 A 和 B 的执行进展,一旦系统中同时存在的任务数量增多,系统就显得越发复杂和脆弱。

Read More...

近些年,随着大数据的兴起,人工智能的复苏,科班出身的应届生,优秀的本来就挺少,十个里面有八个在求职的时候都奔着「算法工程师」的职位去。也难怪我们这些从「研发工程师」一路走来的人,每年的校招时节,都感叹靠谱的做工程的应届生越来越难找了。

与其从众地去竞争听起来高大上的「算法工程师」、「数据科学家」岗位,也许对于有良好工程基础的学生来说,在「研发工程师」的竞争中更容易脱颖而出,在后续的职业发展上也更加顺利。

Read More...