node.js底层是基于什么原理

今天在社区里面闲逛,发现node.js很火。之前也零零星星的看过一些node.js的介绍,知道它底层是google v8引擎的 基于事件模型的服务器软件。但脑子有几个why一直挥之不去: 1.基于事件模型的理论并不新鲜,为什么没有在其他语言中实现。可能的原因是,其他语言都没有基于基于事件模型的概念或者习惯, 而在浏览器里运行的js则处处都是事件,onclick,onmouseover等等。 2.在不是基于事件的http请求中,客户端和服务器建立tcp连接(http都是基于tcp吧),直到响应完毕,断掉tcp连接。 而现在node.js中在收到请求后,通知客户端断掉tcp连接,并说我之后会把找到的东西发给你。问题来了:服务器端是 怎么找到客户器端的呢?我们知道客户端去找服务器端是花了不少力气的,先dns,再ip;现在tcp断了,我不知道有什么机制 能让服务器找到客户端?难道node.js不是用在这样的场景么? 好吧,精力有限,还来不及去研究这个问题的答案。哪位同学了解的话,解答一下吧。纯属解惑。

June 28, 2012 · 1 分钟 · ming

面了几家公司

又到三四月份,我本没有离职的心思,不过旁边的同事都骚动不已,从小的到老的,原因不外乎公司待遇偏低。 从已经离开的同事的情形看,确实如此,因为普遍能到涨个1.5到2倍的待遇,可叹整个it行业是怎么回事,在前东家 可有可无,得不到重视,待遇迟迟没有提升;于是纷纷另寻高就,靠跳槽来提薪已成为一种趋势。在工作前5年尤盛, 本人也是个例子,不过我是反面教材,不说也罢。 我还是挺喜欢现在的公司的,环境还好,人际关系简单纯朴,工作不忙几乎不用加班,有足够的业余时间做感兴趣的东西。 不过大家都在找,我也找找看我是啥身价吧,说不定合适的,跳一跳也未尝不可。 在51job上更新了下简历,但只投了家ror的和中兴java的职位。工作地限杭州上海,一个星期收到4,5家面试。几乎都是做java的职位, 而我近一年主要作后端shell和plsql,java只是闲时android用用。而我现在更多的兴趣放在了ror上面,个人生产力,活跃的社区, 都对我很有吸引力。 列出几家的名字吧,算免费广告了,认识也算缘分: 郎新 作电力系统的,java开发,在东部软件园内办公。给我的感觉是中规中矩的软件公司,好歹不会让我做长长的题目。 税友 作税务系统的,java开发,在高新软件园办公,环境比郎新好点。一去就做几页的隐私调查,爹妈工资啥的。 然后作题,有个递归的题目,还有几个列出10种方法提升性能之类的题目感觉有点意思。 华赛 华为做安全的子公司,也要填很多隐私的内容。不过技术面的面试官问的挺有水平,不会考你那些死记硬背的内容。 需要比较底层的知识,和我的知识结构不太匹配,其实有几个问题比如“设计一个协议可靠的传输2个文件”,当时没什么思路, 表现的不好,有点可惜。 通策 上市公司的软件事业部。hr挺真诚。 塔塔 上海外包到摩根。业务,技术,英语,综合能力,比较和我的竞争力匹配。 从这次面试也有一点体会,虽然我有较多的工作经验,我还欠缺一些核心竞争力,业余学到的东西android和ruby等也没能为我加分。 以后要注意强化英语,学好ror并多动手。争取自己上一个有影响力的开源项目。

June 28, 2012 · 1 分钟 · ming

rails guide学习笔记1

学习rails也有2,3个星期了。虽然有javaEE的使用经验,也较系统的提前学习了ruby, 不得不说学习起来还是有不少的难度。简单来说,ruby on raisl就相当于java中的 struts+spring+habinate,再加一个非常方便的代码生成工具。 同时,也建议初学者直接从RailsGuides官方文档作为学习的第一站,因为这里有对rails 方方面面的介绍,从怎么做到为什么这么做。以我为例,我学的第一本教材是那本著名的 《用rails进行敏捷开发》第4版(Agile Web Development),但由于没有一点概念,书中 说用rails new,generate,scaffold等时不知道他是想干什么,为什么他要这么做,只能跟 着书一步一步作,学习效果并不理想, 所有我只有fall back来看官方文档。也见解印证了我 的那个观点:官方文档永远是值得考虑认真学习的文档。 今天基本看完教材上model的部分,终于也能在学习中体验到爽的感觉。聪明的migrations, 聪明的验证和回调,聪明的实体关联,聪明的查询接口。ror的开发理念让很多东西都聪明起来, 当然,里面也有很多你一不注意就会犯错的小陷阱。比如哪些方法会触发回调,低性能的N+1查 询问题等。我要在理解的基础上记忆的同时,增加实战经验。

March 3, 2012 · 1 分钟 · ming

Hello World

i want to have my own blog since long time ago, but all kinds of excuses stoped me. As i’m learning ruby on rails, i’m kind of repick the good habit of study and writing things down. It’s a good chance to start blog right here, right now. I would like to keep my decision here: each week post at least two posts, and at least one of them must be technical related in the next 6 month....

February 25, 2012 · 1 分钟 · ming

markdown 语法学习

###h 标题的写法 #h1 ##h2 ######h6 ul 和 li testtest testtest testtest testtest testtest * testtest * testtest * testtest * testtest * testtest testtest testtest testtest testtest testtest 1. testtest 2. testtest 3. testtest 4. testtest 5. testtest

December 2, 2011 · 1 分钟 · ming

selectUserByName select * from sys_user u where 1=1 -- @ if(isNotEmpty(name)){ and name like #{name} -- @ } order by u.id desc pageQuery select #{page('*')} from sys_user where 1=1 -- @if(isNotEmpty(deptId)){ and department_id=#{deptId} -- @} pageQuery2 group 语句翻页需要转成子查询 select #{page('*')} from ( select count(1) total,department_id from sys_user where 1=1 -- @if(isNotEmpty(deptId)){ and department_id=#{deptId} -- @} group by department_id ) a pageQuery3 select #{page()} from sys_user where 1=1 -- @if(isNotEmpty(deptId)){ and department_id=#{deptId} -- @} pageQuery3$count select count(1) from sys_user /* 使用指定的count语句*/ departmentJsonMapping 映射DepartmentInfo { "id":"id", "name":"name", "users": { "id":"u_id", "name":"u_name" } }

1 分钟 · ming