zoukankan      html  css  js  c++  java
  • 脚踏实地,不要飘忽不定

    脚踏实地,不要飘忽不定

           前言:老老实实,扎扎实实,把基本动学好,不要动辄“架构”,“模式”。 很有段时间没有写博客了,不知道大家想我了没有!呵呵!

                

          最近接触到了不少开发人员,有刚刚踏入IT的,也有刚刚毕业的,也有已经工作了好几年的,总是问我一些比较莫名其妙的问题:“如何培养抽象的思维?”,“如何学习架构?“等等诸如之类的问题。之所以说”莫名其妙“,是因为这些问题任谁也不好回答,看起来是个问题,其实等于没有问!

     

         在后来和这些开发人员讨论的过程中,发现很多的基本都是“随大流,舍本逐末”。例如,认为ASP.NET就是拖控件,如果会开发自定义控件的,就算是牛X了。学了一点JQuery,越是网页中到处是JQuery,开始鄙视服务端控件。学了一点Ajax,所有的请求都是异步的了。学习了MVVM,就算是精通WPF,SL了。学习了.NET中的反射,不得了了:高级东西啊,到处用!学习了一点设计模式,于是认为“已经精通架构设计”,架构就是“设计模式”等。

          有些朋友也认为“做网站“没有技术含量,我就随便问了几个问题,例如:如何一ASP.NET站点,并且全球的用户量不断增加,已经达到了日访问量上百万,以后还会增加,于是性能成为了很大的问题,如何解决?

    1.      请求优化,开启多少TCP链接,是否DNS缓存,

    2.      页面加载优化:页面资源加载策略(jscss,图片,都是各不相同的)

    3.      Web Farm负载均衡使用

    a.      负载均衡的原理

    4.      IIS优化,例如数据压缩,IIS内核缓存。

    5.      数据读取优化,例如采用缓存,减小数据库压力(可以提出分布式缓存问题)

    6.      缓存的相关策略,例如缓存什么数据,缓存多长时间。

    7.      数据库分压问题:

    a.      如,什么时候需要采用数据群集技术,

    b.      如何进行数据库读写分离,

    c.      如何进行主动数据库之前的数据同步,

    d.      如何对数据库进行水平拆分,

    e.      如何对数据库进行垂直拆分。

     

           有时候,只要反问一个简单问题,那些人基本就熄了:既然你精通ASP.NET,能不能把 从在浏览器中输入一个Url地址开发,到看到这个页面的输出,这其中涉及到的每个过程具体的描述一下?

          到现在为止,还没有见过几个人能够把这个过程描述清楚的,很多人都是简单的描述:发送请求,IIS接受,ASP.NET 运行时处理,返回结果。稍微好点的还知道有个“页面生命周期”?如果问问“请求经过的管道处理周期”,基本就看不住了。如果随意在其中任意挑一个小细节问下去,很多人就开始打马虎眼了!

        

        其实上面的问题,回答起来,是需要一定的功力的,从浏览器发送TCP请求,通过DNS寻找域名,然后“三次握手”,然后服务器开始处理,http.sys检测,IIS接受请求,加载ASP.NET运行时,然后为初始化Domain,读一些config,加载相应的权限等等。

     

        很多时候就是这样,对技术,很多的开发人员都大体上知道是个什么东西,如果稍微深入细节一点,知道的人就很少了。一旦问了问题,或者在做设计的时候,考虑的往往就不周详,漏洞百出!其实有个体会“知道的越多,发现自己知道的越少”!“细节决定成败!”

     

        也曾经告诉一些做.NET开发的朋友,把基本功能搞好(这里不是指的计算机学科的那些基本可能)。例如,知道程序集是什么东西,有什么组成,什么是清单,PE表头,知道一些IL的知识,了解一些垃圾回收的机制,了解什么是对象复苏,知道委托和事件是怎么做的,知道对象在哪里分配的等等。起码先把把语言关过了,再谈后面!

     

        今天算是即兴发言!有机会大家一起探讨!

     

     

       

      

     

     

         

         

  • 相关阅读:
    JS获取URL中参数值(QueryString)的4种方法
    js 字符串转换成数字的 三种方法
    jquery.cookie 介绍 和 用法
    JS的document.all函数使用 示例
    JS按回车键实现登录的三种方法
    js 字符串转换成数字的三种方法
    GitHub访问速度慢的一种优化方法
    git commit 提交的时候报错husky > pre-commit hook failed (add --no-verify to bypass)
    git回退
    git commit 提交的时候报错husky > pre-commit hook failed (add --no-verify to bypass)(解决办法)
  • 原文地址:https://www.cnblogs.com/yanyangtian/p/2083041.html
Copyright © 2011-2022 走看看