‘壹’ 网站建设中的常用的的编程语言有哪些
我们经常说php站,ASP站等。
还是老一句话,不要去弄懂概念,否则一年的时间你都没研究透到底啥是PHP,啥是ASP。
我就用我自己的理解来告诉大家一些基本的需要掌握的常识就可以了,也就足够了。
1,常用的编程语言是asp(最常见),asp.net(经常用),php(频率一般),JSP(使用频率一般)。。
2,常用的数据库是ACCESS数据库(这个是最简单,最常用的),SQL,以及MYSQL(这个安全性高)
3,ACCESS的数据库的程序,不需要独立的数据库空间,所以使用该种数据库的空间最便宜。 SQL或者是MYSQL都需要单独购买数据库空间,价格贵一些。
4,数据库可以与编程语言随意搭配,一般使用ACCESS数据库的,直接上传到空间里,就可以运行该程序,而SQL或者MYSQL的,需要先配置数据库,比较麻烦一些。
5,安全系数,从语言的角度来讲,ASP,ASP。NET,PHP以及JSP的安全性差不多,因为这都是成熟的语言,从语言上漏洞不大,ACCESS数据库运行速度慢一些,安全系数差一些,因为可以被直接下载下来,并且破解,SQL和MYSQL的安全性和运行速度都要快一些。
6,所有的空间都是支持HTML的,ASP的空间只能运行ASP以及HTML,但是不能运行PHP。
一般的广告页,直接就是HTML的,不需要任何语言,这种一般选择HTML空间就可以了,这种网站也叫静态网站,但是不是说网页上没动画的意思。
一般的小站程序,例如留言本或者是在线提交等一些小程序,都是ACCESS数据库的,ASP语言的最多,因为这个容易管理。
一般的大站,基本上都是使用的SQL或者是MYSQL数据库,因为运行速度快,安全系数高。
三者的开发成本也是依次增加的,所以一般新手做项目做站,可以先选择ASP+ACCESS的程序,因为这种程序便于上手和管理,一般不会出现什么问题。
网站来源: http://www.zhzoo.com/show_news.asp?id=91
‘贰’ 小程序开发用什么语言
使用JS+CSS+HTML5语言。
小程序是基于微信平台的轻量级应用,它的开发是应用微信提供的小程序前端规范,结合企业自己开发的应用后端来制作的。
小程序开发使用的语言本质上就是JS+CSS+HTML5,不过不能直接用HTML标签,微信提供一个组件库,没有DOM和其他浏览器上的API;网络、Canvas等也重新包装过。
对于微信小程序而言,前端程序是唯一差异于网站建设技术的,因此,只要使用JS+CSS+HTML5让前端程序过得了关,能够写前端的接口,那么使用PHP,又或者java,以及asp.net的程序语言都是完全支持的。一般对于企业而言,都是采用php程序开发微信小程序;技术要求高一点的可以采用java程序开发。
(2)javaphpnetnodejs扩展阅读:
微信小程序优点:
1、方便快捷,即用即走。不需要再下载什么APP啦,既费流量,又占空间内存。小程序就是方便,即用即走。
2、速度快、不占内存。因为小程序前端代码都是存在微信服务器上的,在腾讯云端存放呢,所以无需加载,直接就打开了,速度也比较快。并且还不占用手机内存。
3、安全稳定、保密性强。其实小程序就类似苹果商店,首先需要审核才能发布。其次小程序通信采用的是https访问,SSL加密通信,并且小程序样式代码都封装在微信小程序里面,所以安全性更高,更稳定。
4、功能丰富,场景丰富。可以调用比H5更多的手机系统功能来进行开发,例如GPS定位、录音、拍视频、重力感应等,能开发更丰富的使用场景。
5、开发成本低、维护简便。同样的功能,做一个APP估计需要十几万甚至几十万,而开发一个小程序,一般几千元就搞定了。维护起来也比较简单方便。
6、附近定位、入口众多。开放的入口比较多,除了通过扫码,发送朋友,搜索,附近等常用入口外,还能与公众号关联,群发文章嵌入,公众号菜单链接等。
‘叁’ web前端开发需要用到哪些知识
应该熟练掌握的基础技能:
HTML4,HTML5语法、标签、语义
CSS2.1,CSS3规范,与HTML结合实现各种布局、效果
Ecma-262定义的javascript的语言核心,原生客户端javascript,DOM操作,HTML5新增功能
一个成熟的客户端javascript库,推荐jquery
一门服务器端语言:如果有服务器端开发经验,使用已经会的语言即可,如果没有服务器端开发经验,熟悉Java可以选择Servlet,不熟悉的可以选PHP,能实现简单登陆注册功能就足够支持前端开发了,后续可能需要继续学习,最基本要求是实现简单的功能模拟,
HTTP
在掌握以上基础技能之后,工作中遇到需要的技术也能快速学习。
基本开发工具
恰当的工具能有效提高学习效率,将重点放在知识本身,在出现问题时能快速定位并
解决问题,以下是个人觉得必备的前端开发工具:
文本编辑器:推荐Sublime Text,支持各种插件、主题、设置,使用方便
浏览器:推荐Google Chrome,更新快,对前端各种标准提供了非常好的支持
调试工具:推荐Chrome自带的Chrome develop tools,可以轻松查看DOM结构、样式,通过控制台输出调试信息,调试javascript,查看网络等
辅助工具:PhotoShop编辑图片、取色,fireworks量尺寸,AlloyDesigner对比尺寸,以及前面的到的Chrome develop tools,
FQ工具:lantern, 壁虎漫步
学习方法和学习目标
方法:
入门阶段反复阅读经典书籍的中文版,书籍中的每一个例子都动手实现并在浏览器中查看效果
在具备一定基础之后可以上网搜各种教程、demo,了解各种功能的实际用法和常见功能的实现方法
阅读HTML,CSS,Javascript标准全面完善知识点
阅读前端牛人的博客、文章提升对知识的理解
善用搜索引擎
目标:
熟记前面知识点部分的重要概念,结合学习经历得到自己的理解
熟悉常见功能的实现方法,如常见CSS布局,Tab控件等。
入门之路
以下是入门阶段不错的书籍和资料
HTML先看《HTML & CSS: Design and Build Websites》1-9章,然后《HTML5: The Missing Manual》1-4章。
CSS先看《CSS: The Missing Manual》,然后《CSS权威指南》
javascript先看《javascript高级程序设计》,然后《javascript权威指南》
HTTP看HTTP权威指南
在整个学习过程中HTML CSS JavaScript会有很多地方需要互相结合,实际工作中也是这样,一个简单的功能模块都需要三者结合才能实现。
动手是学习的重要组成部分,书籍重点讲解知识点,例子可能不是很充足,这就需要利用搜索引擎寻找一些简单教程,照着教程实现功能。以下是一些比较好的教程网址
可以搜索各大公司前端校招笔试面试题作为练习题或者他人总结的前端面试题还有个人总结的面试题(带参考答案)
http://code.tutsplus.com有各种各样的教程
MDN也有很多教程,更重要的是里面有详细的文档,需要查找某个功能时在Google搜索:xxx site:https://developer.mozilla.org
http://www.html5rocks.com/zh/也有很多优质教程
http://www.sitepoint.com/
http://alistapart.com/
原生javascript是需要重点掌握的技能,在掌握原生javascript的基础上推荐熟练掌握jQuery,在实际工作中用处很大,这方面的书籍有《Learning jQuery》或者去jQuery官网
建一个https://github.com/账号,保存平时学习中的各种代码和项目。
有了一定基础之后可以搭建一个个人博客,记录学习过程中遇到的问题和解决方法,方便自己查阅也为其他人提供了帮助。也可以去http://www.cnblogs.com/或者http://www.csdn.net/这样的网站注册账号,方便实用
经常实用Google搜索英文资料应该经常找到来自http://stackoverflow.com/的高质量答案,与到问题可以直接在这里搜索,如果有精力,注册一个账号为别人解答问题也能极大提高个人能力。
经典书籍熟读之后,可以打开前面必备基础技能部分的链接。认真读对应标准,全面掌握知识
继续提高
有了前面的基础之后,前端基本算是入门了,这时候可能每个人心中都有了一些学习方向,如果还是没有。
可以参考前面必备技能部分提到的那两个项目,从里面选一些进行发展学习。以下是一些不错的方面:
Grunt:前端自动化工具,提高工作效率
less css:优秀的CSS预处理器
bootstrap:优秀的CSS框架,对没有设计师的团队很不错,与less结合使用效果完美
requirejs:AMD规范的模块加载器,前端模块化趋势的必备工具
Node.js:JavaScript也可以做后台,前端工程师地位更上一步
AngularJS:做Single Page Application的好工具
移动端web开发:智能手机的普及让移动端的流量正在逐步赶超PC端
Javascript内存管理:SPA长期运行需要注意内存泄露的问题
High Performance JavaScript(Build Faster Web Application Interfaces)
Best Practices for Speeding Up Your Web Site:重要技能
####工具
chrome dev tools:前端开发调试利器,着重注意几个功能:
liveload: 修改页面后自动刷新,不用按F5
dimensions:直接在页面上测量的利器
livestyle:css样式修改后自动起效果,不需要刷新,elements修改后也能同步到代码中
image tool:测量,取色
UC二维码:移动端调试扫码必备
pagespeed,YSlow:页面性能分析和优化插件
马克飞象:优秀的在线markdown编辑器,快速写周报,做记录
watch expression:通过表达式查看当前内存中的值
call stack:查看调用栈,开启async,可以看异步调用栈(这个非常有用,尤其是ajax调试的时候)
scope variables:作用域链上的变量,非常有用
console(废话)
elements:元素样式调整,很常用
sources:代码中添加断点,单步调试,以及单步调试过程中查看内存中的对象
network:抓包查看每个请求,非常重要,前后端联调必备
timeline:分析渲染、js执行等等各个阶段,性能优化利器
emulation:模拟移动端环境,mobile页面开发必备
一些插件:
sublime text2:编码方便,插件多,速度快,性能好
emmet:提升html编码速度必备
sublimelinter + 各种语言的lint和hint:代码纠错
一些snippets:自动补全,提升开发效率
Intellij IDEA和WebStorm:集成开发环境,集成了各种功能,开发比sublime要方便,但会比较吃性能
Mark Men:测量、取色、标注利器,拿到视觉稿之后第一个打开的软件
GFW Fucker:我用红杏,可以的话买个虚拟服务器当梯子
iHosts:非常优秀的hosts管理软件,轻松修改hosts,开发调试必备
Charles:Mac 平台最好用的抓包分析工具
Rythem:AlloyTeam出品的代理抓包软件,非常轻量,安装简单,移动端(真机)开发调试很好用
Wunderlist:一个非常不错的Todo List,任务、需求多的时候管理起来很方便
####技能
前端的技能其实除了JavaScript(包括NodeJS)、HTML、CSS以外,还有很多。其实前端的技能树很大,这里只能列一些我开发中见到的说一说
#####语言基础
JavaScript:
作用域链、闭包、运行时上下文、this
原型链、继承
NodeJS基础和常用API
CSS:
选择器
浏览器兼容性及常见的hack处理
CSS布局的方式和原理(盒子模型、BFC、IFC等等)
CSS 3,如animation、gradient、等等
HTML:
语义化标签
#####进阶
JavaScript:
异步控制(Promise、ES6 generator、Async)
模块化的开发方式(AMD、CMD、KMD等等)
JavaScript解释器的一些相关知识
异步IO实现
垃圾回收
事件队列
常用框架使用及其原理
jQuery:基于选择器的框架,但个人认为不能叫框架,应该算工具库,因为不具备模块加载机制,其中源码很适合阅读钻研
AngularJS/Avalon等MVVM框架:着重理解MVVM模式本身的理念和双向绑定的实现,如何解耦
underscore:优秀的工具库,方便的理解常用工具代码片段的实现
polymer/React: 组件化开发,面向未来,理解组件化开发的原理
CSS和HTML:主要是CSS3的特性和HTML5的特性,以及浏览器处理的流程和绘制原理
DOM树、CSSOM树、渲染树的构建流程及页面渲染的过程
解析HTML、CSS、JavaScript时造成的阻塞
HTML5相关
SVG及矢量图原理
Canvas开发及动画原理(帧动画)
Video和Audio
flex box布局方式
icon fonts的使用
常用NodeJs的package:
koa
express
underscore
async
gulp
grunt
connect
request
一些理念:
响应式Web
优雅降级、渐进增强
dont make me think
网页可用性、可访问性、其中的意义
SEO搜索引擎优化,了解搜索引擎的原理
SPA的好处和问题
性能优化:
减少请求数量(sprite、combo)
善用缓存(application cache、http缓存、CDN、localstorage、sessionstorage,备忘录模式)
减少选择器消耗(从右到左),减少DOM操作(DOM和JavaScript解释器的分离)
CSS的回流与重绘
生态系统
npm
bower
spm
搭建一个属于自己的博客
git pages
hexo
jekyll
#####未来
Web Componets:面向未来的组件化开发方式
HTML模板
Shadow DOM
Custom Elements
HTML Import
移动端Native开发:这也是需要了解的,以后前端工程师会经常地和webview打交道,也要了解native开发
‘肆’ 10.app后端选择什么开发语言
选择开发语言就一个核心原则:在合适的业务场景的情况下选择最热门的语言.
(1)每种语言都有自己擅长的业务场景,根据业务场景来选择
例如,如果需要开发一个聊天服务器,选择了php来开发,那真的醉了。php这种脚本语言怎么适合聊天服务?
例如,如果是开发web网站,php就很合适,比起java,效率提升很多。
(2)选择最热门的语言
很多语言适用的业务场景是重叠,那么这种情况下应该怎么选择?
我的答案是,选择最热门的。
从app后端的开发语言来说,java,php,python,ruby,golang,nodejs等等都可以,那我们到底选择哪个?
我们估算一下,java,php,python,ruby,go这五种,拥有多少的开发群体?招人容易吗?
开源社区活跃吗?有没有大量的第三方库,能避免自己重复造轮子。
(3)一个大忌是用两套不同的语言维护一个相同的业务逻辑
曾经,有个创业者咨询我,他的项目有app和网站两部分,他想用java来开发app后端,用php来开发网站后端,两部分有大量的业务逻辑是相同的。
我立刻说明:这种情况就是重复造轮子的情况。用两套语言去维护相同的业务逻辑,在开发效率上有提升吗?
如果要修改业务逻辑,那两种语言的实现需要修改,这不是浪费了大量的开发时间吗?
(4)一个系统中,不同的业务逻辑可以用不同的开发语言实现
例如,后端系统的mvc框架部分可以采用php,而如果在后端需要实现一套定时任务系统,那么就可以考虑采用java或python,这两种语言都有成熟的定时任务实现方案.
最后,如果真的没法决定采用哪种开发语言,还有一个办法,找找和你业务逻辑差不多的同类产品,看他们的招聘要求,参考一下咯^-^
‘伍’ ASP 、ASP.NET是不是和php同属于网页编程语言ASP、ASP.NET现在用的多吗
这三者其实严格意义上来说都不属于网页编程语言,更准确的说是服务器脚本语言。
何为服务器脚本,指的是运行在服务器上面的一种依赖解析引擎工作的指令集。
通俗来说,脚本就是指不通过编译即可运行的程序。脚本的执行过程相当复杂,不同的语言的解析过程大相径庭,也是造就脚本速度的关键因素之一。
回过头来看,这三者均属于服务器脚本,用于接收、处理和发送数据。网页编程语言指的是网页开发所使用的语言,一般最常见的是HTML,css和javascript等。而服务器脚本的作用之一,就是用于web开发,但却不是他的所有功能。他的功能包含所有的网络功能,包括app数据相关,大数据处理等一系列用途。
asp,asp.net是属于微软的,而且并不开源。因此这就造成一个问题,通用性差,因为它只能运行在微软的视窗操作系统上,而不能运行在其他系统上(其实,有办法实现,但是效果不尽人意)。而总所周知,微软视窗操作系统的授权费用高昂,加上诸如数据库等,是笔不小的开支。因此,更多的公司倾向于使用php。根据统计,全球的使用Apache的网站中,超过94%的网站是使用php开发的,可见php的发展势头之猛。而且php具有很好的移植性,目前主流的开发方式是LAMP(或LNMP)。
asp和asp.net目前使用人数还算不错,大部分是企业站和教育等网站,商业网站几乎不可能用他们,当然微软除外。这种网站要求规模小,技术低,维护成本低廉。因此,习惯于视窗操作系统的iis正是不错的人选。
php是开源的产物,目前已经更新到了7的版本。php7正式向java的访问速度提出了挑战,结果如何,还不知,毕竟还处于初期,无法确定。
另外,新势力——nodejs的崛起开始逐渐威胁php的地位,nodejs借助v8引擎已经本身就是javascript的优势,逐渐受到更多的web开发者的青睐。而且由于v8太过于优秀,nodejs的访问速度是php和java所不能比的。
‘陆’ nodejs的优势
NodeJs的优势:
现在的很多的服务器端的语言(PHP,JAVA,ASP.net),有什么问题呢,现在的服务器端的语言在用户访问服务器时,为每个用户链接创建了一个线程,但每个线程大约要耗费2M的内存,如果一个8G内存的服务器,也就能链接4000个左右的用户,如果用户的链接数较大,就必须增加服务器的数量,而且现在用户的链接方式有很多(如app,网页同时访问),这就又涉及到服务器共享的问题,所以服务器怎么支持最大的同时链接用户量就成了一个问题;
NodeJS修改了客户端到服务器端的链接方法,解决了这个问题,他不在为每个客户端创建一个新的线程,而是为每个客户端链接出发一个NodeJs内部进行处理的事件,所以NodeJS具备同时处理多达几万个用户的客户端链接的能力;
NodeJS适合开发的应用程序:
当应用程序需要处理大量并发的输入/输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,我们应该考虑使用NodeJs来进行应用程序的开发,例如:
1、聊天服务器:如果聊天的人很多,用户的与服务器之间的并发链接量很大,但是服务器端的数据处理并不复杂;
2、综合类服务网站和电子商务网站的服务器:在这类网站中的服务器端,往往可能每秒存内可以接受多达上千条的数据并且需要将这些数据写入数据库中,NodeJs可以通过其队列机制将这些数据迅速写入缓存区中,然后再通过每一个单独的处理从缓存区中取出这些数据并将其写入数据库中,如果是其他的服务器(如Apache服务器或Tomcat服务器)的话,由于这些服务器采用的是阻塞型I/O机制,因此每条数据写入到数据库中都要等待一段时间(等上一条写完,才能写下一条),但是NodeJs使用的是非阻塞的I/O机制,因此可以实现这些数据到数据库中的写入,而不必再为每条数据的写入而等待一段时间;
总结:
一个规模稍微大点的系统都不是一种开发语言可以搞定的,往往是几种混杂一起,比如c、c++做服务器端开发,java做业务逻辑,php等做前端展示,此外还需要消息中间件等等。
nodejs可以很快地在服务器端做原型(原来只有c系和java等能做的事情,性能还很高),而且代码量相对会少很多;另一点是它的语法优势,js闭包等。但它不太适合做cpu密集型处理的工作,只能绕着弯去解决,据说这次QCon会有人分享这方面的研究成果,可以关注下。
每种语言都有它适合的领域,没必要强求一门语言可以解决所有事情,拥有其它语言的特性,只有不断的tradeoff把系统做出来才是目标。这些都是丛书上看到总结的,还望指正
‘柒’ 高级语言排行
编程语言的受欢迎程度、学习的人群数量,以及由于人工智能的兴起,最热门的编程语言排行榜也发生了变化。让我们来看看。
可以看出,Python现在是最受欢迎的程序员编程语言。那么,很多大公司都把Python作为自己旗下人工智能的开发语言,比如亚马逊、谷歌、FACEBOOK等等。那么,如何让自己使用Python开发的机器学习模型快捷低成本的跑起来,并且深度兼容TensorFlow?Google 针对人工智能发布了AIY Projects(AIY计划),其目标是让每个Maker(创客)都能DIY自己的 AI 人工智能产品,让更多人能学习、探索并体验人工智能。对人工智能领域以及正在学习Python的程序员或者创客们,可以去了解下谷歌的这个项目。