编程

探索Javascript异步编程

ぐ巨炮叔叔 提交于 2019-12-02 14:34:10
笔者在之前的一片博客中简单的讨论了Python和Javascript的异同,其实作为一种编程语言Javascript的异步编程是一个非常值得讨论的有趣话题。 JavaScript 异步编程简介 回调函数和异步执行 所谓的异步指的是函数的调用并不直接返回执行的结果,而往往是通过回调函数异步的执行。 我们先看看回调函数是什么: var fn = function(callback) { // do something here ... callback.apply(this, para); }; var mycallback = function(parameter) { // do someting in customer callback }; // call the fn with callback as parameter fn(mycallback); 回调函数,其实就是调用用户提供的函数,该函数往往是以参数的形式提供的。回调函数并不一定是异步执行的。比如上述的例子中,回调函数是被同步执行的。大部分语言都支持回调,C++可用通过函数指针或者回调对象,Java一般也是使用回调对象。 在Javascript中有很多通过回调函数来执行的异步调用,例如setTimeout()或者setInterval()。 setTimeout(function(){ console.log(

北京尚学堂|程序员的秘密

馋奶兔 提交于 2019-12-02 06:23:27
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。下面我们来看程序员的一些小秘密: 让我们看一些基本的编程技巧 1. 尽量保持方法简短 2. 永远永远不要把同一个变量用于多个不同的目的 3. 使用自描述的变量名和方法名 4. 尽可能的把变量定义在靠近使用它的地方 5. 拒绝神秘数字 6. 友好的对待你的语言 7. 不要逆常规而行 8. 警惕过早优化 9. 积极重构测试过的程序 10. 不要过度沉迷于技巧 11. 通过习例学习新知 现在,让我们把每个小点展开来详细讲一下 1. 尽量保持方法简短 尽管很多人都遵循这个规则,但它仍然非常的重要。你写的方法要始终能在一个屏幕里放得下。如果你需要去滚动屏幕,这会分散你的注意力,而且你看不到整个的上下文。最佳长度是5-20行,这根据你的情况而定。当然,getters/setters 通常是一行代码的方法,但与其说它们是真正的方法,不如说它们只是存取工具。 2. 永远永远不要把同一个变量用于多个不同的目的 一个变量应该始终只为一个目的服务。通过使变量常量化(C++里的const,

北京尚学堂|优秀工程师的十种特质

时光总嘲笑我的痴心妄想 提交于 2019-12-02 06:23:03
如今,每家公司都似乎成了科技公司。从软件创业公司到投机性投资公司、制药巨头和媒体巨头,它们都越来越多地加入到软件业务行列。 代码质量不仅成为了一个必需品,更成为了一个竞争优势。因为众多公司围绕软件而竞争,开发软件的人——软件工程师正显得越发重要。但是,你该如何发现那种百里挑一的程序员呢?在本文中,在此北京尚学堂简明扼要地列出了优秀开发人员的几种特质。 明星软件工程师的特质 1. 热爱编程 编程是一种为了满足兴趣而心甘情愿去做的劳动(Programming is a labor of love)。和其他任何职业一样,唯有真正的热情,才能完成真正的伟大事情。这里有个误解,认为编写代码是机械化并纯科学性的。事实上,最优秀的软件工程师是工匠,他们能把能量、独创性和创造力融入到每一行代码中。伟大的工程师知道何时该把代码雕琢至完美,知道何时把大型系统像拼图一样组装到一块。热爱编程的工程师从构建软件中获得满足,就好比一位作曲家在完成一部交响乐后而欣喜若狂。正是兴奋感和成就感,才造就了喜爱编程的明星工程师。 2. 完成事情 有很多技术人员只谈论软件而不编写代码(只说不做型)。而伟大软件工程师会真正去编码,这也是他们最为重要的品质之一。他们是实际做事的人。聪明人都知道,解决问题的最佳途径是直面问题,而不是花上数周来设计复杂又不必要的架构和函数库。优秀工程师应当会问:解决手头问题的最简单方法是什么

JAVA开发环境选择与配置

孤者浪人 提交于 2019-12-01 16:21:17
现在支持J2EE的开发、部署环境很多。用的最多的开发环境(IDE)开发工具有Eclipse(开放源代码)、JBuilder,其他的有WebGain;另外一般的应用服务器提供商也提供相应的开发工具,如BEA公司的Workshop,Oracle公司的Jdeveloper,IBM的WebSphere Studio。应用服务器主流的有三种BEA公司的WebLogic Server;IBM公司的WebSphere;以及开放源代码组织的Jboss(开放源代码)等。值得一提得是到目前为止,国内已经有数款支持J2EE规范得应用服务器推出了,以金蝶公司的Apusic最为典型。另外支持J2EE规范的应用服务器还很多, 总共有上百种,但是获得SUN的Authorized Java Licensees of J2EE的到(2003-5.16日为止)只有32家公司。应用服务器也因此只有这么多。后台数据库,企业级的应用一般采用Oracle,Sysbase,DB2等。应用开发中也有用中型数据库MySql(开放源码)的。开发Java程序的基本理念是Write Once Run Anywhere,但是应用服务器却是要与操作系统打交道的。在所有应用服务器种WebLogic支持最彻底——多达17种操作系统。其他的一般都支持主流操作系统,如Window系列,Unix系列,当前推出的应用服务器版本一般都支持Linux了

如果有人让你推荐编程技术书,请叫他看这个列表

前提是你 提交于 2019-11-30 17:58:51
这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。 本列表综合了伯乐在线网站以往推荐 经典书籍 文章中的列表,以及在微信和微博中被广泛推荐的好书。虽然已经包括了 100 多本,覆盖的面也比较全,仍然有很多方面需要补充,而且相信还有很多没有被收录的好书。欢迎大家在评论中推荐或自荐。 这篇文章主要是分类别推荐了该类别所属的经典书籍列表。每个类别下,从书名就可以看出来,是区分了方向。即使是同一个方向,也侧重点不同。即使侧重点相同,作者讲解的思路也是不同的。请选择自己关注的方向,根据图书的简介选择适合自己的书籍学习。 我们也在 GitHub 上同步更新这个列表,地址: https://github.com/jobbole/awesome-programming-books 欢迎关注! 计算机系统与网络 《 图灵的秘密:他的生平、思想及论文解读 》 《 计算机系统概论 》 《 深入理解Linux内核 》 《 深入Linux内核架构 》 《 TCP/IP详解 卷1:协议 》 《 Linux系统编程(第2版) 》 《 Linux内核设计与实现(第3版) 》 《 深入理解计算机系统(原书第2版) 》 《 计算机程序的构造和解释(原书第2版) 》 《

程序员该如何维护健康的人际关系?

余生颓废 提交于 2019-11-30 14:26:53
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 我们都曾有过这种感受: 当你在文本编辑器中穿梭解决难题时,整个世界似乎都远去了。你不知道当前时间,也不会想着晚饭要吃些什么,全身心地投入在屏幕,或者说是难题上。 我从未吸过毒,但是我猜这应该就是吸毒的感觉。 这种感觉很容易上瘾,可以说是最容易上瘾的事物之一。这感觉并不像上瘾,只是感觉……很有成效。 确实,这样可以让你把事情做完,获得丰厚的薪水,但是代价是什么呢? 你的家人和朋友并不能体会这种乐趣。当你坐下来,敲写了几百行代码,对结果感到满意时,他们不会像你一样觉得满意。 作为程序员,找到工作和生活的平衡点可能有点困难。但是人际关系是幸福生活的关键之一,所以了解如何维持和发展人际关系至关重要。 聊聊你的工作 直面这个问题,和不太懂技术的人解释技术难题确实需要花费些精力。 当被问及整天在干嘛时,我发现自己通常都会说“你不懂”。但是现在我意识到,这很损害人际关系。 就像我之前说的,亲人朋友通常没有我们对编程和解决问题的那种热爱。但是他们很爱我们,这就是为什么前面他们会好奇我们的工作都干了什么。 如果你累了,没有心情工作,或者没有头绪了,至少试着和亲人朋友谈谈你的工作。他们会肯定你的付出,也可能会对你的问题有所帮助呢。更多精彩内容关注微信公众号:北京尚学堂。 定期社交/放空自己 如果想要更好的利用时间,不妨休息一下。众所周知

学习笔记网站之在ASP和PHP语言及数据库选择上的3个要点[图文]

半城伤御伤魂 提交于 2019-11-30 02:27:14
学习笔记网站之在ASP和PHP语言及数据库选择上的3个要点[图文] 去年12月份,我开始着手建立一个学习类的博客网站,由于博客站点我以前就接触过,因此在网站建设方面还是有些心得的,不过让我有些拿不定注意的是:如何选择系统语言,例如ASP和PHP的选择;如何配置数据库,例如到底是选择access、mysql、微软的ms-sql呢,另外如果要选择,版本又如何确立呢?这些都是在建立环境之前应该琢磨和考虑好的,一旦实施,再想修改那就是大工程了。 为此,我对ZBLOG的两套系统进行了测试: 1、ASP是固定搭配的access数据库,我上次就讲过,如果数据库内容不超过1万条,那么选择这个数据库非常好,操作方便,对服务器环境的要求很低,而且可以生成静态文件,访问速度和效率上也没有问题。 2、同样是ASP语言的系统,如果数据量很大,例如达到5万级别,毫无疑问要使用MS-SQL者款微软的中型数据库,容量大、访问效率高。当然了,在选择的时候,你还要注意一个问题,那就是对SQL Server版本的选择,我以前也讲过,Sql Server2005和2008版本都是比较成熟的,但是到了2012版本就会出现一个重启服务器或者数据库系统后自增变量跳跃1000数值的问题,这个问题而且无法解决,是数据库存在的bug,对于我们建立小站来说,这是很麻烦和棘手的问题。因此我推荐的sql server2005和sql

IT行业需要一个不断学习和勤奋努力的过程[图]

守給你的承諾、 提交于 2019-11-29 17:55:59
大上学的时候,我本来报考的是机电工程专业,是打算从事机电方面的工作的,但是出于爱好考虑,最后选择了计算机及应用,学习了关于计算机方面的知识,但主要是应用的运营方面的,编程技术方面那就欠缺了一些,因此还需要在编程技术上多下功夫! 今天心情不错,很想写一遍关于最近的学习日志,算作心情随笔文章吧。最近主要在学习SQL数据库方面的知识,总之还处于初级阶段,进入学习的深海,发现数据库还真是很难学,不是看着那么简单的,也不像网上说的那么容易,学的特别好的人可能是天赋使然吧。 为了印证自己的学习成果,也在写一个博客,取名叫做百家笔记网,主要是关于教育和文学方面的,用自己的知识来完成这个小项目,看看能否有所成就,这也是对自身学习的一种肯定和挑战,学习和生活不都是挑战自我的过程吗? 关于小博,最近还有了一些流量,每天200个IP访客左右,虽然不多,但是个好的开端,已经建站5个月了,看来比真正的专业人士还是差远了,还是知识不够啊!可见,知识是真正的力量的源泉,是需要不断学习和更迭的。以“勇敢与善良——海的女儿http://www.simayi.net/duhougan/248.html读后感1000字”为例,虽然可以搜索到,但流量表现并不好,这说明我还是用买一本关于搜索技术的书籍学习下,深入的学习一下关于建站方面的知识,让自己的学习有所成果,这也是我们学习计算方方面的知识所期望的。 好吧,今天心情好

学习笔记SQL提交查询语法之WHERE子句的应用和规则[图]

断了今生、忘了曾经 提交于 2019-11-29 17:53:55
俗话说,活到老,学到老,我就是半路出来学习编程的年轻人了,因为个人对于程序有兴趣,因此从一开始就自学,但是难度也非常大,目前在学习数据库了,对于一些语法和技巧,写一些学习心得笔记,记录下来,以后也方便复习。 最近在建一个博客,关于读书和写作话题的,主要是记录自己的生活,也顺便多读点儿文学著作,毕竟知识改变命运嘛。在学习数据库的过程中,最难的就是关于sql语法的问题,感觉数据库比较复杂,查询、增删改查、触发器等等,都好复杂。 好了,下面言归正传,来总结关于sql查询语法的条件应用规则: WHERE 子句用于规定选择的标准。 WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。 语法 SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 使用 WHERE 子句 如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句: SELECT * FROM Persons WHERE City='Beijing' 引号的使用 请注意,我们在例子中的条件值周围使用的是单引号。 SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。 文本值: 这是正确的: SELECT * FROM Persons WHERE FirstName='Bush' 这是错误的

学习笔记之T-SQL插入数据INSERT语法和数据库编程实战技巧[图]

北慕城南 提交于 2019-11-29 17:53:44
一直以来就有写博客的习惯,记录一下学习心得、生活点滴等等,感觉也蛮好的,去年开始萌生了建立一个读书和文学博客的想法,于是就开始实施了,中途也遇到不少难题,不过还好,都逐渐解决了,虽然我在技术方面有欠缺,但好在有同学们帮忙。 今天想和大家分享的学习笔记是:关于sql server数据库操作insert语法的相关技术,数据库是我们学习建站最重要的一个难题,也是非常关键的,因此必须学好。 INSERT INTO 语句: INSERT INTO 语句用于向表格中插入新的行。 语法: INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) SQL 语句: INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing') SQL 语句: INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees') 以上是语法和一些案例,下面我们来仔细分析一下,INSERT INTO是向哪个表来插入数据的意思,后面就是表名称,然后是分别列出向哪些字段(列)中插入书籍