在开发的道路上,就始终无法避开版本控制,哪怕你是独自一人进行开发,版本控制也是有必要的,从最早开始使用CVS,到后来使用SVN,再到git,最后又回到了SVN,但是不知道为什么真的对SVN很无爱。

  现在工作的地方,使用的是SVN,我每天都得把自己修改过的文件单独的提出来,然后以相同的目录路径打包好,然后提交到测试版本库目录下,然后再交由其他人用ftp对服务器上的文件进行覆盖

然而每天这样创建对应的目录创建文件都已经快把我逼疯了,幸好我自己写了一个脚本来自动的执行这个过程,但那是在我忍受了一星期那样繁琐而枯燥的工作之后,然后我不禁想起了当初使用git工具自动同步的更新代码的时光。每次写完代码之后,执行一下git commit 和git push命令,然后瞬间就同步到服务器了,也正是这种简单的过程,让我喜欢上了测试。

  这里我不得不介绍一下我的第一位BOSS---ES,我觉得是他帮我打开了这个领域的大门,他曾经一直反复的强调的习惯,依然响彻在我的耳边,尤其是在最近反复的看 了《The Progmatic Programmer》和《重构》,我越来越能感受到他当时的想法,是他让我在无意识的养成一些优秀程序员所应该具有的品质

  他没有告诉我该使用面向对象还是面向过程,而是直接让我学会使用设计模式

  他没有告诉我,我应该学会使用什么框架,而是直接告诉我,框架只是告诉你不该做什么,而不是能做什么

  他从来不去看我写的代码,只是反复的告诉我,千万不要重复你自己

  遇到难题的时候,他不会告诉我应该去什么地方寻找资料,仅仅说了一句简单的话:使用英文

  他总是的强调着,要做一个挑剔的程序员,不管是对自己的程序还是对生活

  他说,开发的过程应该是一种享受,而不是一种枯燥而又反复的繁琐过程,

  他喜欢用双屏显示器,喜欢用linux操作系统

  或许他不是一个好领导,但是我觉得他是一个优秀的程序员

  虽然当时我不能很好的理解他,但是现在我能够感受到他那种厌恶重复的心情

  学会使用git,拥抱github,融入bitbucket,告别不断覆盖文件的噩梦,Webhooks可以让你在使用git push的时候,请求bitbucket的webhooks去调用服务器上的.php文件,发送linux的shell命令去git pull远程仓库的代码,达到同步更新

我是一个懒惰的程序员,我只想告别重复,放飞思绪!

浅谈我的编程之路——感谢引领我的leader的更多相关文章

  1. 浅谈.Net异步编程的前世今生----APM篇

    前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...

  2. 浅谈.Net异步编程的前世今生----EAP篇

    前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...

  3. [转帖]浅谈响应式编程(Reactive Programming)

    浅谈响应式编程(Reactive Programming) https://www.jianshu.com/p/1765f658200a 例子写的非常好呢. 0.9312018.02.14 21:22 ...

  4. 浅谈Windows API编程

    WinSDK是编程中的传统难点,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制…… WinSDK是编程 ...

  5. 浅谈PHP面向对象编程(二、基础知识)

    和一些面向对象的语言有所不同,PHP并不是一种纯面向对象的语言,包PIP它支持面向对象的程序设计,并可以用于开发大型的商业程序.因此学好面向对象输程对PHP程序员来说也是至关重要的.本章并针对面向对象 ...

  6. 浅谈C#网络编程(一)

    阅读目录: 基础 Socket编程 多线程并发 阻塞式同步IO 基础 在现今软件开发中,网络编程是非常重要的一部分,本文简要介绍下网络编程的概念和实践. Socket是一种网络编程接口,它是对传输层T ...

  7. 五 浅谈CPU 并行编程和 GPU 并行编程的区别

    前言 CPU 的并行编程技术,也是高性能计算中的热点,也是今后要努力学习的方向.那么它和 GPU 并行编程有何区别呢? 本文将做出详细的对比,分析各自的特点,为将来深入学习 CPU 并行编程技术打下铺 ...

  8. 新手浅谈Task异步编程和Thread多线程编程

    初学Task的时候上网搜索,看到很多文章的标题都是task取代thread等等相关,我也一直以为task和thread是一类,其实task是.net4.0提出的异步编程,在之前.net1.0有dele ...

  9. 浅谈iOS网络编程之一入门

    计算机网络,基本上可以抽象是端的通信.实际在通讯中会用到不同的设备,不同的硬件中,为了能友好的传输信息,那么建立一套规范就十分必要了.先来了解一些基本概念 了解网络中传输的都是二进制数据流.  2.了 ...

随机推荐

  1. iOS开发——UI基础-UIScrollView

    一.UIScrollView使用的步骤 1.创建UIScrollView 2.将需要展示的内容添加到UIScrollView中 3.设置UIScrollView的滚动范围 (contentSize) ...

  2. .net获取周几(中文)

    DateTime.Now.ToString("yyyy年MM月dd日 星期ddd hh时mm分ss秒", new System.Globalization.CultureInfo( ...

  3. python 函数的调用 和执行 小知识

    1.符号表 执行一个函数会引入一个用于函数的局部变量的新符号表. 更确切地说, 函数中的所有的赋值都是将值存储在局部符号表: 而变量引用首先查找局部符号表, 然后是上层函数的局部符号表, 然后是全局符 ...

  4. tab切换,滑动门

    <SCRIPT type=text/javascript>  jQuery(document).ready(function () {          changediv([" ...

  5. js刷新页面的几种方法

    history.go(0) location.reload() location=location location.assign(location) document.execCommand('Re ...

  6. 160809225-叶桦汀《C语言程序设计》实验报告

    #include<stdio.h> int main() { int a,b,c,t; printf("请输入三个整数"); scanf("%d%d%d&qu ...

  7. 多版本python共存

    当不同版本python之间相互不能兼容时,可以使用virtualenv创建不同版本python的虚拟环境 当没有指定python解释器时(如下-p 即为指定的python版本),将使用默认的全局pyt ...

  8. struts2将servlet对象注入到Action中

    在struts2框架中,可以通过IoC方式将servlet对象注入到Action中,通常需要Action实现以下接口: a. ServletRequestAware: 实现该接口的Action可以直接 ...

  9. 什么情况下可以不写PHP的结束标签“?>”

    我们经常看到有些PHP文件中的代码是只有开始标签,而没有结束标签的,那么什么情况下可以不写这个结束标签,而什么情况下必须写?先来看2个例子: 下面的代码正常运行: <?php echo 1234 ...

  10. Git是如何存储对象的

    原文:http://gitbook.liuhui998.com/7_1.html 一.前言 所有的对象都以SHA值为索引用gzip格式压缩存储, 每个对象都包含了对象类型, 大小和内容. Git中存在 ...