随笔分类 - 暂未归类
摘要:从网上看到的,还不错。 来源: https://github.com/jobbole/awesome-programming-books 计算机系统与网络 《图灵的秘密:他的生平、思想及论文解读》 《计算机系统概论》 《深入理解Linux内核》 《深入Linux内核架构》 《TCP/IP详解 卷1:
阅读全文
摘要:我们做开发的经常遇到一个问题:设计出来机制不是需求方想要的,按照他的思路去修改功能,结果做出来发现有损失了,就是解决他要的问题,其他附带问题就来了,那个不是他想要的。其实我借鉴《顾客想得与说的不一样》中的。我理解到,技术需求与顾客需求分析也是一样的道理,所以我借鉴过来。总结为:我们不要陷入需求方的思维去,不要陷入需求方口头上说的去。而要问对方要解决什么问题(因为我解决他那个问题的技术方案很多种)可以看《顾客想得与说的不一样》里面提到一个例子:你问用户想要什么样的把手,顾客答:我想要把手粗的!结果工厂造把手加粗的。结果还是没人买。实际上,深入问对方:想解决什么问题?顾客答:我只是想避免把手拿到手
阅读全文
摘要:由于我一直是做php开发,热部署对我而言是一个新概念,比较新鲜。根据查阅,才知道是其他语言才有的。我更喜欢了解一项技术从原理性来求解,这样一通百通。只需要了解原理,就抓住本质的东西了,细节可能不会。我总结需要热部署的根源在于如下:应用程序服务器(tomcat,node.js)为了提高性能。一个代码文件比如a.php(这里只是用php来举例,php无这种机制),需要的时候会把a.php的内容载入内存,下回访问,直接从内存中拿代码。所以:即便我修改了a.php代码,更新,应用程序服务器拿的还是内存中的a.php代码。所以重启应用程序服务器,就能使用新的了。他们提到,要热部署是为了解决:开发人员修改
阅读全文
摘要:记录以下信息,源于一件事情,一位同事,每次我改他的js代码,发现语句结束都不使用分号作为结束。长长的一串,读起来比较吃力。即便语句的结束不使用分号结束,代码仍然不会报错,正常运行,所以不少程序员懒得去管这个。使用分号有两个好处:1、其他人读你的代码可读性好。2、减少不必要的语法错误。在互联网为了减少带宽,压缩js的文件并成一行,不会出问题(看jquery压缩版就知道压缩后的js是并在一行的)。其实我还发现,当使用代码编辑器进行格式化源码的时候,可以避免问题看下面代码:..............前面代码 }) //这里作为语句结束,应该有个分号 re...
阅读全文
摘要:网站如果有很多用户上传图片(相册,商品图片),一般的做法是将用户图片保存在磁盘上面(数据库中记录图片的地址)。用户上传的时候按照原图、中图、小图等各个尺寸都生成一份保存在磁盘上。比如php的网店系统echsop就是这么做的,而shopex之类也大同小异。这种做法也不是不可以。多生成几个尺寸,在磁盘上...
阅读全文
摘要:进了一个技术群,发现里面眼高手低的人实在是不少。初级问题觉得不够高深。不屑一顾。实际上:回答一些初级的问题,往往能够加深自己的理解。尤其是越通俗易懂得解释,越说明个人的领悟层面高低。可能真正让他去认真解释,连他自己都不是很清楚,这类人固步自封了。装大牛。跟写文章一样,写了总结能够加深理解,在写的过程中,才知道自己原来某个知识点欠缺,似是而非的的理解层面,让我表述,根本表述不全。就得去补习一下,才能写下去。把自己的理解以文字形式表达出来,确实让我能够整理思路。所以,眼高手低确实不少。可能在现实工作中,做得出来,能够完成工作任务,但是缺乏一个高度。比如电脑城的装机人员,他们不需要熟悉计算机原理(没
阅读全文
摘要:技术人员做久了。最好学会架构或者说是战略层面考虑的事情,从整体考虑一些东西。而不是单纯纠结技术细节。战略与战术的选取。战术可以多种多样。比如,考虑公司几个技术人员,人力去机房维护成本(这样子根据目前访问量是不是不需要独立服务器呢?租用配置好vps等等方案),这里只是一个比方,从整体考虑。表面技术层面是感觉如此完美了,但复杂化之后带来相关问题(失去的)。没有最好的。只有最合适自己的。万事的规律,总是有个取舍。有得就有失。跳出技术思维来看看就好点。技术员因为专攻一面去了,往往过于执着于完美的技术方案,执着于自己的技术方案多么牛逼。缺乏了整体思维。权衡得失。我最近感触,架构师考虑问题的角度与单一工种
阅读全文
摘要:Web 访问日志 (access_log) 记录了所有外部客户端对Web服务器的访问行为,包含了客户端IP,访问日期,访问的URL资源,服务器返回的HTTP状态码等重要信息。一条典型的Web访问日志如下:112.97.37.90 - - [14/Sep/2013:14:37:39 +0800] "GET / HTTP/1.1" 301 5"-" "Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; Lenovo A326Build/GRK39F) AppleWebKit/533.1 (KHTML, like
阅读全文
摘要:目前流行几种备份方式:1、逻辑备份:使用mysql自带的mysqldump工具进行备份。备份成sql文件形式。优点:最大好处是能够与正在运行的mysql自动协同工作,在运行期间可以确保备份是当时的点,它会自动将对应操作的表锁定,不允许其他用户修改(只能访问)。可能会阻止修改操作。sql文件通用方便移植。缺点:备份的速度比较慢。如果是数据量很多的时候。就很耗时间。如果数据库服务器处在提供给用户服务状态,在这段长时间操作过程中,意味着要锁定表(一般是读锁定,只能读不能写入数据)。那么服务就会影响的。备注:所谓的与mysql服务器能够自动协同工作,实际上是指加参数来控制mysql服务器,比如锁定所有
阅读全文
摘要:部署:MongoDB服务端可运行在Linux、Windows或IOS平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。64位系统就没有最大文件限制。32位系统最大限制2g的原因为:32位系统下,所有地址必须能用32位系统访问到(超过2g访问不到了)。所以针对32位操作系统下的mongod最多只能处理2g的数据。一个数据库的数据存储方式:比如数据库test分别会有如下文件:testabc.0,testabc.1,testabc.2每个文件的大小都会成倍增加。第一个是16m,第二个是32m,第三个是64m。第四
阅读全文
摘要:mongodb的结构与关系型数据库不同,它类似树状结构,可以很方便对每个分支进行操作,但它没有像mysql那样insert(value、value、value...)那样的语法,也不支持transaction所以mongodb不能批量插入数据,如果你要批量插入数据,可以在mongodb里写一个循环,它支持for等语法。因为MongoDB的底层就不支持这种操作。从MongoDB的oplog模式中可以看出,MongoDB的每次op都是独立执行的最小单元,因此,不会存在多个op组合成一个执行的情况。因此在各种API中都不会存在这种批量插入的操作。某网友提到他的理解,觉得很有道理:这里还是涉及到大家经
阅读全文
摘要:像Oracle这样成熟稳定的数据库,足以支撑海量数据的存储与查询了?为什么还需要数据切片呢?的确,Oracle的DB确实很成熟很稳定,但是高昂的使用费用和高端的硬件支撑不是每一个公司能支付的起的。试想一下一年几千万的使用费用和动辄上千万元的小型机作为硬件支撑,这是一般公司能支付的起的吗?即使就是能支付的起,假如有更好的方案,有更廉价且水平扩展性能更好的方案,我们为什么不选择呢?收费是按照cpu个数和用户数两种方式进行的:http://blog.csdn.net/hzw2312/article/details/8617607 mysql被sun收购,sun最后又被oracle收购。自己公司两个产
阅读全文
摘要:突然写个感悟:感觉有些公司不能呆久了。呆久了,技术得不到提升。过去的经历存在大脑数据库,人做判断是根据大脑数据库已经存储的信息,所以思维模式容易受到过去的影响。做phper,想提升技术,两类公司不能呆久了:一类是网站建设公司。二类是接项目单子为盈利的公司。像软件外包公司就是的。1,关于网站建设公司。我以前去一个公司面试的时候,是一个网站建设公司。我当面对老板说,我说公司可以呆,但是呆久了。技术很难得到提升。浪费了提升技术水平的机会。我与a同学也劝过一个同学,你以前在这种公司呆过,就不要继续找这方面工作了,会导致你技术难以得到质的提升。找那种网站运营的公司去。这样技术提升快。网站建设公司,公司以
阅读全文
摘要:技术不是用来显示自己多么牛逼的。是用来解决问题的工具,这样才会产生市场价值,于是产生生产力。追求花俏的东西。没有任何意义。1、喜欢测验一些花俏,不实用的技能。很多公司的技术,由于不懂如何面试。而且自己也不谦虚。所以,面试应聘者就变成了装B显示我技术多么厉害的的场合。题目考一些不切实际的,不实用的题目。喜欢用那种标准答案的考试方法。感觉回到了应试考试似的。比如:php5.3的新特性,可能有些人做了5,6年开发公司用的版本一直是5.2.x,以实用为主。其一,他不知道这种新特性并不能表示出什么。最多说明,没有关心新特性。其二,即便不知道这个新的特性。并不会影响开发。花几分钟看一下就知道了,我觉得这才
阅读全文
摘要:多看一些资料,实践了几年有了如下感悟:单一的技术化思路,只会陷入技术死胡同越陷越深。有时候要跳出来,从业务上去看,从现实中一些事情去看。现实中的思想用到技术中去。技术只是一个工具而已,确定一种什么思想,然后以技术为工具去解决。单纯为技术而技术达不到境界的。万事万物有其相互融通的一面。哲学思想。比如,道路出口交通拥挤,单纯的用技术手段:怎么把道路扩宽。就会陷入死循环,你扩得再宽,这是存在极限的,可能还是无法从根本上解决问题。非技术层面,是想着如何进行调度。避免所有车辆都挤到一个口子去。互联网的很多技术方案其实是与现实中相通的。单个服务器性能再强,总是存在极限。从集中式向分布式处理,就是分散压力。
阅读全文
摘要:Compiling shared PECL extensions with phpizeSometimes, using the pecl installer is not an option. This could be because you're behind a firewall, or i...
阅读全文
摘要:总结的方向:在linux下php挂接mysql.so扩展的方法问题背景:平常我们都是先安装mysql,然后才能去安装php。假如先安装php,后安装mysql,由于php需要连接mysql,因而在php引擎中需要配置使用mysql.so扩展。这时需要手动编译生成mysql.so扩展。当前问题:在上面情况下,使用phpize能否实现挂接mysql.so扩展?实践结论:使用phpize工具能够生成mysql.so,但是必须加上"--with-mysql=mysql客户端的路径"。也就是mysql.so模块必须用到mysql客户端才行。可以这样理解,mysql.so内部会调用my
阅读全文
摘要:之前在学校的时候,只知道session与cookie的区别在于:session是保存在服务器端,cookie保存在客户端。session怎么样保存的?以文件的形式保存。自己去测试过。有的忘记了。对应session的id号模糊不清。在开发中,非常有必要弄明白具体细节。不能停留在使用session_st
阅读全文