我和ORM的故事

在现代程序开发的过程中,ORM无疑是我们的重要开发工具,ORM的诞生大大解放了生产力。每种语言都会有N套ORM框架,有轻量的、重量的、讲究灵活的、追求性能的…不胜枚举。但每样技术都有两面性,ORM同样如此。各个社区对ORM的争吵基本成了月经话题。大有“彼之蜜糖,吾之砒霜”之意。ORM同样经历了各式各样的变革。我是ORM的坚定支持者,我也曾被ORM狠狠虐过,也算经历过几代ORM的变迁,自己也开发过不止一套ORM,个中酸甜苦辣不一而足。今天,和大家聊聊我和ORM的故事。

Read More

傲娇码农的自我修养

  一个热爱自己职业的人一定会对自己的工作充满自豪感,同样,也应该对自己的工作充满热情和自信。对自己的专业能力骄傲而不自满。身为一个码农,如果你热爱自己的工作,我想,你很有可能也是一位傲娇码农。在我的眼里,傲娇码农应该具备以下条件:

一、对编码充满热情

  我爱这该死的工作,code虐我千百遍,我爱code如初恋。不轻易厌倦,不自我怀疑,垂死病中惊坐起,我还能再撸两行。我们的工作是具有创造性的工作,不是流水线上的工人。永远面临挑战和被挑战,而我心中的炙热不变。从前,和我的同事一起吃饭,最有意见的往往是他们的对象:“你们生活能不能有点其他乐趣?别永远都是代码代码代码…”乐在其中的我们往往忘了吃饭睡觉,仅仅为了脑中蹦出的那一点点灵感而不知疲倦,不分昼夜。

二、对权威从不盲从

  也许我是某位大牛的死忠粉,但我绝不愿意成为他的脑残粉。他的工作和我一样,我们写着同样语法的代码。我能为他的设计拍手称快,也能为一个个巧妙的算法自愧不如。但我决不认为他的一定是对的,更不可能承认那就是最佳的。终有一天,我也能做到,甚至做得更好。

三、对业务的敏感

  代码本身并不产生价值,产生价值的是代码所承载的业务。当业务需求到达手中的时候,首先浮出脑海地一定是整个业务与代码实现对应的全景图。新的业务是否会破坏原有设计?依赖关系如何处理?原有模块能否复用?业务安排合不合理?你是业务的最后一道防线,你有义务捍卫公司业务的合理性,当你的代码运行起来的时候,即是业务开展的时候,无论成败,作为参与者,都负有不可推卸的责任。

四、强大的责任感

  当你对你的作品有了深刻的认同感,一定会产生很强的责任感。看待你的项目如同你的孩子一般。任何时候都希望对它悉心照顾。当你的项目出现了任何问题,一定第一时间到达现场诊断并解决问题。你对整个程序了如指掌,也相信自己一定能找到并解决问题。同时,自己会成为开发团队的技术引领者和布道者。创新,交给我;培训,交给我;复杂问题,交给我;只要有我在的团队,一定充满着技术活力。

五、没有做不到

  在程序的世界里,只有想不到没有做不到。哪怕它很难很难,也只会让你付出更多的时间而已。哪有做不到一说?“做不到”这个词简直是对傲娇码农的羞辱。毕竟我对我的技术如此骄傲,哪能有我解决不了的问题?都有做不到的问题了,让我的骄傲何处安放?复杂如操作系统、数据库、分布式算法都敢一一挑战,普通的业务需求真的算不了什么。

  我想,至少要做到上述五条的程序员才能体现出一名程序员高超的职业素养。也才有资格展现出自己的傲气。也需要以上的素养,你的傲气才有机会得到他人的认可。技术无止境,你的成就也需要建立在他人的认可上,否则仅仅是自嗨而已,换来他人嘲笑。如果你真的爱这一份工作,真的热爱这个职业,我想你也能自然地心怀梦想,期盼早日登上技术巅峰。愿同行的你们,都是傲娇码农。

云计算是如何拯救软件工程的?

  我之前有一个观点:前些年软件工程,或者说软件工业化的发展是倒退的!长期以来我坚持着这个观点。直到云计算的到来,我觉得这应该会是软件工业化的方向。今天和大家聊聊为什么说云计算会带领软件行业走向属于自己的工业化道路。

Read More

我眼中的前后端分离

在我映像中,2014年淘宝系大肆宣传他们的前后端分离架构,AngularJS那时也发展得如火如荼。基于这一春风,业界也全方位兴起了前后端分离的热潮。但和 微服务 一样,一个名词出来了,各种各样的解读也出来了,似乎也没有人能够很清楚地说明白,前后端分离究竟如何分离。

Read More

Snowflake 的改进与实现

Snowflake 算法是Twitter提出的一种分布式ID生成算法。它满足了一个ID生成器所需的几大要素:1、全局唯一;2、趋势递增;3、可反解。这样的ID生成器在分布式系统中十分有用。

Read More

Spring Cloud OpenFeign为什么不支持多个复杂参数生成查询字符串

在使用Spring Cloud OpenFeign时,遇到了一个很烦人的问题,就是Feign无法支持多个复杂对象作为参数生成查询字符串的场景,而这样的场景无法避免,并且短期内看不到官方有意愿解决这一问题,因此,我研究一下为什么支持不了。

Read More

MyBatis-Generator 不生成*ByPrimaryKey系列方法的问题

今天在家用MBG生成一张新表的Mapper,突然发现*ByPrimaryKey系列方法统统不见了。

Read More

每位推广运营都想做用户的爹

昨天我回到家,突然发现我连上Wifi的设备都上不了网了,仔细检查后发现路由器联网失败。通过致电 10000号 被告知欠费,至于为什么欠费?客服小妹对我的账单进行了查询,然后义正言辞地告诉我,我办宽带时交了1900+而每个月费用200,我余额不足了!我真是一脸懵逼状!

ervery-yunying-fuck-user-201821415134

我脑子瓦特拉?办宽带套餐办10个月的??

Read More

敏捷的意义:BOSS,我们要不杀个PM祭天?

最近在做一些自己的小东西,在做的过程中发现了一个小问题:想和做如何协调?做一个功能的时候会想到另一个功能,生怕忘了,赶紧做一点;做了一会儿,突然想到前面的功能貌似还没完成,赶紧去补补…在这样的反反复复的过程中,很容易拖累进度。想了一下以前曾经和我的一个团队共同使用过Teambition这个协作工具。它可以认为是一个电子看板,用它我就可以像以前做敏捷一样有计划,有记录地开展工作了。

Read More

每家公司都该拥有OSS

我在招行卡中心的时候,开发了一款OSS(对象存储服务),当时内部叫FSP(文件服务平台).定位和七牛/又拍极其相似;算是一种私有的OSS吧.OSS这种东西可繁可简,但是一旦拥有便将成为开发者的福音,大大增加开发效率.总的来说,OSS是很受广大开发人员欢迎的,很容易进行内部推广,大家都很愿意使用,甚至有些时候爱到了滥用的地步.如今掌上生活应该有极多的静态资源通过FSP进行托管和分发了吧.

Read More