Tychlog

最新文章

远程居家工作心得

office

远程/居家工作已经成为了一种趋势,更多的人选择了这种工作方式。在远程工作中,如何保持高效的开发流程、便捷的沟通与协作、灵活的项目切换,以及不断提升自己的技能和能力是非常重要的。在本文中,我将以自身多年远程居家工作的经验为基础,介绍一些工具和技术,来帮助你更好地适应远程工作的环境。

使用S3FS将AWS S3挂载到EC2上

terminal

最近有一个客户想在AWS EC2上安装SFTP服务,其实之前已经给他设置了AWS Transfer Family服务,可以直接为S3开通SFTP服务。不过这个客户觉得太贵,所以还是想在已经存在的EC2服务器上安装SFTP服务,并且连接到S3。本来以为很简单的事情,没想到花了一天时间,还差点把服务器弄坏了。

Nest.js快速启动API项目

最近上了一个新项目,这个客户管理一个庞大的任务和团队集群,而不同流程所适用的系统也不太一样,比如salesforce,hubspots之类的。这次的新项目需要在另外两个平台之间做一些事情。目前只需要先封装其中之一的API,因此我们选定使用NodeJS的框架Nest.js来实现这套API。

Remix.run新手教程

最近刚在JavaScript Weekly看到了Remix.run(以下简称Remix)准备开源发布1.0版本。没过两天就看到Remix飙到Github Trending趋势榜第一了。感觉是已经火了啊,不知道后续跟Next.js比怎么样。不过看起来不算太复杂,很多东西都封装起来了,语法很轻。所以准备学习一下,顺便做点学习笔记。

远程工作的这几年

这几年一直在做远程开发工作,一个原因是陪读,老婆留学的地方一半说法语一半说荷兰语,基本不说英语,所以英语都半吊子的我不好找工作,只能去陪读;另一方面也是想尝试一下这种新鲜的工作方式,毕竟新奇的事物对我总是充满吸引力。当然,远程工作方式有艰辛之处,也有惬意之时。总之,我会试着把这些都总结分享出来。

另外需要说明的是,我是以类似工作室的方式进行远程开发工作的,所以会有一些某种程度上的同事,偶尔在一个项目上协作。不过更多的是和PM,客户以及客户所雇佣的其他开发团队人员沟通。

后MVC时代的前端架构

很多人觉得,前后端的差异主要是分别承载了数据和样式,功能和皮肤。前端就是视觉方面的,后端是实质性的。追溯到很多年前,确实是这样的,所谓的前端只是由于后端MVC中的View过于复杂,为了提升用户体验,提高加载速度,以及降低服务器压力,所衍生出的一些优化技术。

碎片化结对编程

真的很久没写博客了,一直提不起兴趣,总觉得写一些代码如何写,工具如何用,过一阵子就不是很有用了,所以想写一些自己的心得体会,但又很难总结成文章。这几天突然间想通了一些,也许我是时候抛开前端这个枷锁了,今天我们来谈谈敏捷开发的结对编程。

想当年(然而并没有几年)刚来到ThoughtWorks的时候,除了英语,我最不适应的就是pair,即结对编程。因为刚上项目的我只能跟着结对对象的思维走,即使我思路正确了也无非是在我的结对对象写的代码上印证了一下,少有的贡献就是不时的提醒他一下typo之类无关紧要的错误。然后当我拿到键盘时,还是因为信息的不对等,我无法在全局层面上做出贡献,因为我必须非常熟悉整个项目才能说服我的pair,修改一些架构上的代码,否则只能改进一些细节上的代码片段。这种毫无创造性的工作方式让我昏昏欲睡,说好的挑战,困难,压力呢?我感到了一种可有可无的迷茫。

翻译《Pro AngularJS》

Pro AngularJS

从去年春天就开始翻译这本《Pro AngularJS》,前前后后将近1年半总算是正式出版。从最初的兴奋,到期间的苦逼,最后拿到样书,还是很满足的。这本书由浅入深的详细介绍了AngularJS的各种功能和原理,以及大量示例贯穿全书,开头甚至还有一些JavaScript的基础。原书一共600多页,我和同事各翻译了300多页,我主要是翻译的关于Services的第三部分以及第一部分的后几章。

总的来说收获很多,对AngularJS有了更深入的理解,虽然书中使用的AngularJS版本已经比较旧了,但是对很多方法的使用以及原理的解读还是非常不错的。并且英语阅读能力也感到有明显提升,许多长句子一开始完全不知所云,花了好几个小时通过上下文和代码才慢慢理解其中深意。当然就翻译本来说,也是有许多感想,所以才写了这篇文章总结一下翻译一本书所需要注意的地方。

用“五个为什么”写CSS

相信大多数人都有过关于CSS的痛苦经历,从我加入公司到现在,不到两年的时间里,听到最多CSS相关的讨论就是‘很难调’。所以我也一直在探究这其中有怎样的问题,为什么很多人觉得CSS很难写,如何才能让其他人更优雅的写CSS。在Code Review的时候,我渐渐的发现了问题所在,其实很多人已经掌握了丰富的CSS知识,但却不知道如何分组属性写成class。最后只好在需要改变样式的元素上随意起个名字做class然后把所有要写的属性丢进这个class里,如果优先级不够,再把前面的选择器都加上。结果就是CSS代码不断堆积,重复和冗余不断增多,维护也变得举步维艰。

CSS语义思维

前一阵子在项目组中讲了一个关于CSS的Session,在讲之前我曾收到了许多意见,大部分是希望能讲讲CSS实用性的技术,比如盒模型,CSS3之类的。干货人人都喜欢,因为看得见摸得着,拿来就有用,但我最后还是决定讲一些”湿货“。因为在Code Diff的时候我发现了许多样式的问题不是由于不会写CSS导致的,而是由于在错误的地方使用了写在错误地方的样式。

其实CSS很简单,没有计算没有流程,只是一直描述,无论什么复杂的效果,你只要Google一下就知道怎么写了,甚至可以直接copy。但CSS又很复杂,一个元素的表现会受到它旁边的兄弟元素,也会受到内部的子元素影响,还会受到父元素影响,在这种多重影响下,一个元素的显示逻辑会变得错综复杂。有没有面对塌陷的块级元素而束手无策?无论怎么改它的属性就是得不到自己想要的,但看看似乎一模一样的示例程序却安然无恙,是不是恨得咬牙切齿?我想这就是本文所要解决的主要问题,让你学会如何优雅的写CSS。