杂货
- hack:不优雅的解决方案
- 软件工程师事业指南:技术、成长、声望
- sublime编辑器比用dreamweaver更有优势–这两个是编辑器,是文件级别的,即打开某个语言文件执行,而pycharm这种是IDE(集成开发环境)是项目级别的,是一站式的服务,缺点是比较重量级
- 前端工程师重要的技能有:关于网络性能和HTTP协议
- 作品集:github,dribbble(设计师的舞台),github pages(相当于有了自己的域名,jekyll通过几行代码就可以新建站点框架,博客编辑器,web作品集推荐使用这种方式github pages+jekyll/dexy),还有一些社交网站可直接生成作品集:Linkedin/about.me
- 在最新的linux中,线程是基本的运作单位,进程是线程的容器
- apache是用的最多的服务器。经常用的服务器搭配是:前段并发用Nginx,apache处理后台请求.
- TCP/IP协议规定三次握手才建议一次连接
- 通过chrome开发者工具中的pagespeed工具,可以快速获得关于站点性能优化的建议。
- 计算机科学中最令人无奈的两件事是缓存失效和命名
- grunt等发布流程的成熟,让前端工程师免除了很多枯燥的工作。–grunt和gulp是前段的构建工具
- 要用原生技术开发app,一定要好好阅读人机交互指南
- chrome备受好评的原因是使用高性能的V8引擎,执行js效率非常高。
- VPS虚拟专用服务器–每个VPS可分配独立公网IP地址、独立操作系统,磁盘空间,内存,CUP资源,进程和系统配置
- DRY-dont repeat yourself
- stackoverflow全球最大的技术问答网站
Web性能优化
- 压缩源码和图片:js文件采用混淆压缩,css采用普通压缩,JPG根据质量压缩为50%-70%,PNG根据开源压缩软件压缩,比如可以24色变8色,去掉png的一些格式信息
- 选择合适的图片格式:图片颜色较多的话用JPG格式,如果颜色较少就用PNG格式,如果能通过服务器端判定浏览器支持WebP,那么就用WebP和SVG格式
- 合并静态资源:包括css、js喝小图片,减少HTTP请求。将同一域名下的css合并为一个。将图片组合为css贴图。
- 开启服务器端的Gzip压缩:对文本资源非常有效,图片效果不明显。4gzip。
- 使用CND,使用第三方提供的静态资源地址,能够增加并行下载和与其他网站共享缓存。
HTTP优化
- 前端工程师视角:尽量减少同一域名的HTTP请求数,以及尽量减少资源的体积。
- 后台工程师视角:让服务器尽快响应,提高服务器的请求处理能力。
缓存(高性能网站的关键)
- 数据库缓存
- Mysql可以开启查询缓存,每一次select结果都被缓存起来,直到所查询的表发生变化。
- 也就是说,如果数据库的查询语句多过修改语句,那么是很适合做查询缓存的。
- Mysql自带的缓存实在服务器上开辟的,内存空间有限。memcached应运而生,是一个分布式内存对象缓存系统
- 文件缓存
- 频率高的文件缓存在硬盘上,由于硬盘比内存大, 所以可以缓存更多的数据,缺点是没有内存缓存快。
- 服务器缓存
- expires。设定一个过期时间,在这段时间内,将http请求缓存在硬盘上。
- last-modified。对于可能会过期的请求,先将文件缓存好,然后请求时询问资源有没有修改,如果没有修改则返回304然后就可以获取缓存里的内容,如果没修改则返回200。这种缓存仍旧需要一来一回,所以不如expires方便。
- 对于服务器来讲,304太多不好,因为这意味着有很多人访问未修改的数据,这种情况就把他改成expires会更好。所以最好是保证304和200的比例在一个合理的范围内。
- 浏览器缓存设置最佳实践1.动态生成的HTML使用HTTPS头:Cache-Contro:no-cache
2.对于静态的HTML使用HTTPS头:Last-Modified
3.其他所有文件类型都设置Expires头,并且在文件内容有所修改时修改Query String
- 数据库缓存
岗位要求
1.初级工程师
- 了解兼容性
- 了解HTML、CSS、JS语法和原理
- 熟悉编辑器和插件
- 了解调试工具
- 会使用前端库/框架
- 了解标准和规范。
2.中级工程师 - 注重代码规范和质量
- 熟悉js单元测试
- 会性能优化
- 懂SEO
- 会代码部署
- 懂移动Web
3.高级工程师 - 代码架构
- 安全
- 会自动化测试
要向移动端转型
- 混合模式app,部分界面实用WebView技术实现,一般使用WebKit渲染。
- 使用HTML5 Manifest技术实现资源缓存
- 不要把整个APP的主要逻辑都用webview来实现,要根据它和原生技术的优缺点选择。
- phonegap,使用web技术创建各个平台都可用的app.用的是javascript,缺点是app包大,js精通成本高,不如学原生技术,动画性能不佳,如果是图书类查询类要求不高,那么用这个很好。
- web技术写的app,没有固定的继承开发环境,代码透明,谁都能看到。原生技术运行在服务器端,是隐秘的。这种说法不绝对,如果使用SASS编译成CSS,或者CoffeScript编译成javascript,或者用jade编译成HTML,那么用户就看不见源代码了。
版本控制
- 使用最广的工具是git,其次是svn.
- 版本号:1.2.3
第一位:主要版本号,有API变更导致不兼容旧版本的时候使用
第二位:次要版本号:新增功能,但是向后兼容
第三位:修复向后兼容的bug时使用 - 各种语言都有各自的包管理。比如Node.js 使用npm;PHP的composer;python有pip可以创建一个依赖文件的目录。
- Node.js/gulp/grunt
- node.js 不是框架如django,不是库如jquery,而是服务端的开发平台
- 而gulp是构建在Node.js之上的,grunt和gulp都是前端构建工具。
- 所谓构建工具,就是为了解决开发过程中重复或者需要自动化智能化完成事情
VPS(虚拟专用服务器)
- 服务器安全
- 新建一个普通用户,以后都不要用root登录了。
- 使用SSH(secure sheel)名值对登录,禁止用户名和密码登录
- 禁用root账户通过SSH登录
- 安装一个防火墙
- 安装fail2ban,杜绝字典共计
- 选择操作系统
- 有Linux/centos/debian/ubuntu/fedora
- CentOs学习成本最低
- Debian很稳定,但是帮助文档少,新手推荐这两个
- DNS(domain name system)域名解析
- 万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
- 推荐奖域名服务器设置为国内的DNS提供商
- 服务器安全
云服务器
- 如果用户量不大,不用VPS
- 构建自己的博客之类的,可以用静态网页实现。那么可以托管到github pages这类云服务器上,最后免费绑定域名即可。
- 如果想要架设静态资源库,那么可以放在国内的云储存商上,比如七牛云存储,除了稳定还有CDN(Content Delivery Network)的支持
- 如果想要架设API,速度快价格低的SAE不错
- 如果用户量不大,不用VPS
设计模式
- 这一部分应该找专门的书,根据代码看,看文字描述的用处不大。
高效工程师
- 阅读英文资料
- 先google,再stackoverflow(全球最大的技术问答网站)
- 设计
- 《响应式web设计全流程解析》,作者提出一种新的开发响应式Web界面的方式,即设计师不用ps而用web技术创建动态的设计稿。
- 这种方式实际并不是太管用,更好地方式是程序员学会一些设计理念,然后再由设计师确认。
- 约书亚树原理–就是在不知道这个树的名字的时候随处可见,但是并不在意,知道名字之后,只要见到立马就知道它是什么。换成别的方面,比如我们每天都看到大量的广告,动画,图片,潜意识里我们是知道什么是美的,但是我们不知道怎样让它变美,这,就是我们日常生活中的约书亚树。
- 设计工具
- 至少熟练PS和fireworks工具来分离图层、导出格式、批量切图,这是最基本的要求,跟设计感无关
- 创作工具:Axure,sketch,quartz composer
- 卓有成效的管理者–管理者不是由有没有下属决定的,而是由是否有决策权决定的
有效的管理者知道自己的时间花费在哪里,重视对外界的贡献,必须善于做有效的决定。
根据员工的特质来授权,对于有意愿能力不够的要多讲做事的方法,对于有能力但是医院不够的,多进行情感的沟通,搞清楚为什么意愿不够。既有能力又有意愿的员工是好苗子。 - 面试时不要问被拒绝的原因,可以问面试表现的怎么样。HR会避免陷入无休止的
- 跟上司沟通是,立场要尽可能简单,且要一直围绕自己的立场讲述
- 演讲要尽可能多展现自己,即ppt文字一定要少。设定进度。对待错误要放松。
- 内向性格的竞争力。能灵活适应各种社交场合的内向者,要具有很强的自我意识,社会意识,自我管理和关系管理能力。这就是我最终要达到的状态,加油。
web工程师的自我修养
最新推荐文章于 2021-05-23 17:17:26 发布