zoukankan      html  css  js  c++  java
  • 朝花夕拾

    最近整理自正式工作(从有上社保开始算起)8年来的知识。发现技术演变过程如下:

    开发工具和.Net Famework: Visual Studio 2002 ->2003 -> 2005 -> 2008 -> 2010 -> 2012

    ORM: 纯SQL -> Nhibernate -> NetTiers -> Linq To SQL -> Entity Framework

    代码生成工具: CodeSmith -> 自己造轮子 -> T4

    单元测试工具: NUnit -> MSTest

    自动化测试工具: WatiN -> MSTest -> Selenigum -> WatiN

    开发辅助工具: ReSharper -> Productivity Power Tools

    控件的变换更是家常便饭。更不必谈曾经客串过Sharepoint, J2me Mobile开发呢。真的是一年一小变,三年一中变。

    原因是每当一种工具用熟了,了解这种工具的优点缺点,就转到了另一种更先进的工具了。

    但是居然有段代码应用了6年,久经所有实际项目考验居然都没变过,从我的广州时代,到北京时代,再到硅谷时代,见识和经历已经发生了翻天覆地的变化居然没变!(要知道,单是C#最简单的赋值语句都从string s变成了var s了)。这证明了这段代码真的是靠得住的。

    这是我于2006年1月6日在CSDN上写的绝对原创的一篇文章,原文地址:http://blog.csdn.net/adalovelacer/article/details/572269


    回头看singleton(单件)

    “回头望,已过万重山”

            出来工作有段时间拉,用设计模式也有一段时间了,这几天有空就整理一下。先说singleton(单件)吧。

     刚学设计模式的时候(我开始是学c++和做j2me出身的);

     

     1 public class Sample
     2 
     3  {
     4     private static Sample _Instance;
     5     private Sample()
     6     {
     7     }
     8     public static Sample GetInstance()
     9     {
    10          if (null == _Instance)
    11 
    12         {
    13             _Instance = new Sample();
    14 
    15         }
    16 
    17         return _Instance;
    18 
    19     }
    20 
    21 }

     学会用get和set以后:

     1 public class Sample
     2 {
     3     private static Sample _Current;
     4     private Sample()
     5     {
     6     }
     7     public static Sample Current
     8     {
     9         get
    10         {
    11             if (null == _Current)
    12             {
    13                 _Current = new Sample();
    14             }
    15             return _Current;
    16         }
    17     }
    18 
    19 } 

    学会多线程操作以后:

     1 public class Sample
     2 
     3  {
     4     private static Sample _Current;
     5     private static object _threadlook = new object();
     6     private Sample()
     7     {
     8     }
     9     public static Sample Current
    10     {
    11         get
    12         {
    13            if (null == _Current)
    14             {
    15                 lock (_threadlook)
    16                 {
    17                     if (null == _Current)
    18                     {
    19                         _Current = new Sample();
    20                    }
    21                 }
    22             }
    23            return _Current;
    24        }
    25     }
    26 }

    学会用MSIL以后:

     1 public class Sample
     2 
     3  {
     4     private static Sample _Current;
     5    private Sample()
     6     {
     7     }
     8     public static Sample Current
     9     {
    10         get
    11        {
    12            if (null == _Current)
    13            {
    14                 lock (typeof(Sample))
    15                 {
    16                     if (null == _Current)
    17                    {
    18                        _Current = new Sample();
    19                     }
    20                 }
    21           }
    22             return _Current;
    23         }
    24     }
    25 }

    当然还有根据具体解决环境中添加了相应的关键字和相关的语句,大概数了一下,还有九种写法。由于环境描述的问题。在此略过。

     现在回头看这些代码的写法,感触万分,当时每个阶段写出第一次这样的代码的时候,感觉开心极了,很成功的感觉,现在回头看,学海无涯,当初是多幼稚啊,想发笑。不过也体会到一句话:学过其他语言,只能很快的学会另一种语言,但是要弄懂、精通这种语言,还是要花很大功夫。


    就是上面最后那段代码,我用到了现在,6年啦,不管换了多少个项目,不管是在广州,北京,还是硅谷时代。所以分享给大家。

    想想6年前,那时我才24岁,学东西那叫一个快,一个深啊。大家可以从上文看到,短短几个月,我写出来的代码变化是多么的大。

    那时候我熟悉23个设计模式,研究还精深到如何结合C#的反射特性来整合和创造设计模式。

    所以我从广州到北京找工作的时候,面试时有几道关于设计模式的题目我答得特别出色。试用期内我对泛型的掌控能力和CodeSmith的使用令我呆在这家公司到现在不知不觉5年了。

    昨天才给同事打了电话,才想起当初进公司就是他面试我的,那时候6年前,我们都年轻,都在北京。现在,我们已经都在美国了。

    自从来了美国之后,我将很大一部分时间花在签证,法律,企业运营和建立上面。以前在中国的时候,星期六都是睡懒觉。在美国,星期六早上还要7点爬起床,去听企业家课程。


    对了,下一篇博文预告:<美国程序员的收入和怎样到美国做程序员>

    上周我在公司内部做了一次为时两小时的内部培训,主要是分享中美文化差异和我在美国的工作经验和生活经验。现在我将一些程序员们会关心的问题,包括:

    1。美国程序员的收入和状况

    2。怎样到美国做程序员。

    写成一篇博文。

    那为什么我要在这里做博文预告呢?因为我想征集大家的意见来将我这篇博文写得更好。

    就像我在公司做的内部培训一样,第一个小时我是征集了大家的意见做了一个提纲让一次连贯的演讲,然后第二个小时我就纯粹是大家问问题,我来解答和交流。

    因为我深深知道,世界很大,美国很大,我的见识有限,很多事情就像我上面所写的对设计模式的感悟一样,几个月内就变化了几次,仅代表当时我的见识和想法。所以我深深知道我不是人生导师,我只不过是一个同事,一个你的朋友,早来美国,早来硅谷两年,纯粹和大家交流分享一下我的见闻而已,我们是平等的!三人同行必有我师,我们大家各自都是大家各自的老师。

    所以欢迎大家的对博文<美国程序员的收入和怎样到美国做程序员>提任何意见!


    最后,如果大家对美国生活,美国程序员生活有兴趣的话,可以加我的新浪微博:  硅谷叶伟民 http://www.weibo.com/u/2935940992

    注:这篇文章不知啥时候发布时间出现了错乱,显示是2018年,实际上大概是2011年的时候发布的吧。

  • 相关阅读:
    Maven入门教程
    认识Java Core和Heap Dump
    [Java IO]03_字符流
    Eclipse 实用技巧
    可变和不可变的区分
    什么猴子补丁待补充
    当退出python时,是否释放全部内存
    解释python中的help()和dir()函数
    在python中是如何管理内存的
    解释一下python中的继承
  • 原文地址:https://www.cnblogs.com/adalovelacer/p/2688161.html
Copyright © 2011-2022 走看看