<![CDATA[ 幻影主义-lavachen.cn ]]> http://www.lavachen.cn/ zh-cn http://www.lavachen.cn/ 我的一点初级Nodejs 开发心得 37 NodeJS 确实是个前端开发的绝佳工具,也会是后端工程师的优秀玩具~

Nodejs版本的区别

小于1.0的版本 应该说是一两年前的主流版本,后来经过iojs分家的事件,nodejs在版本上变得更加激进。根据es标准的不同,版本也对应着不同的es标准, 6.x支持es2015,7.x支持es2016 。这几个大版本仅仅说自身支持的标准 越来越多。如果旧标准的runtime要支持 高标准

,可以在开发中 加入一个插件 babel ,它可以把新标准的写法 编译 成兼容旧标准的代码,这样就可以造福尝鲜的开发者。

服务器上安装最好是lts版本,也不能太新了。

Nodejs 包管理

包管理方面有很多工具,其中官方的npm是很好的工具,但是其中有一些依赖体积冗余的毛病也让人吐槽。fb出了一个类似的pkg管理,叫yarn,可以兼容npm的大部分操作命令。yarn的优点在于安装依赖的时候有自己的优化算法(应该是缓存和版本的控制),在不同项目之间 各自安装依赖是相当快的。

Nodejs 打包流程

前端的工作,主要是编写,预览,调试,打包。nodejs的babel和eslint已经在编码上提供便利,接下来的环节就是 很重要的工作。我用过fis3 和webpack,目前对webpack的使用经验目前还在 执行命令运行config.js上。

后面要继续深入对前端工程化的研究,必然离不开对webpack和fis3 等工具的熟悉学习和实践。

网络上各种入门文章,太多了,就不列出。

fis3和webpack的区别 : https://div.io/topic/1724

Nodejs 框架的选择

MVC 框架 还是会考虑thinkjs,从php开发转过来的童鞋 一定对这个同样套路的nodejs框架 能够很快上手的~

express 用过,很自由很fresh,就是一些东西要自己写或者找轮子~

]]>
Fri, 04 Aug 2017 14:59:32 +0800 admin 37
red中文交流 36 Red Logo (stylized Tower of Hanoi)

Red是一个小众语言,语法类似rebol。刚开始接触它的时候是从蔡学镛的微博了解到的,第一个印象就是 语法很奇特,这种印象直到现在已经不觉到奇怪了,反而有点美。

Red语言现在版本是0.6.3,离1.0这个里程碑还差很多很多的版本。开发进度相当慢,毕竟核心团队 才几个人,而且red的目标是全栈,高级点 可以做dsl,低级可以嵌入汇编,另外就是Red在这个小版本呢,还是继续在跨平台的Gui开发 做了不少工作,让Gui开发变得更加轻便(然而不简单) 而且Red本身编译器体积很小,1M左右,这一点让几年经验的程序员 很是惊奇,从而产生兴趣。

下面是Red入门的一些资料:

官网: http://www.red-lang.org/ 需要翻墙(因为托管在google的bloger上)

github:https://github.com/red/red

中文文档翻译 :https://github.com/red-china/red-docs

蔡老师的书籍[中学生编程] : http://red-lang.qiniudn.com/doc/v063/%E4%B8%AD%E5%AD%A6%E7%94%9F%E7%BC%96%E7%A8%8B.pdf

其实要更多的入门,除了在red console使用 what ? 来学习api的使用,还有一种办法就是参考rebol3的文档。

我前几年已经建了一个Red技术的交流群,邀请了Red的中国核心开发者 。

如果你对Red本身感兴趣,欢迎加入QQ Qun : 427900172



]]>
Mon, 24 Jul 2017 19:38:03 +0800 admin 36
quill编辑器的图片上传 35 vue2+quill编辑器 插入图片 只能插入 base64编码过的图片,这样的好处就是可以在本地看到插入的图片,不走服务端上传接口。

对于这样的默认配置,肯定有点不认可。我想把quill编辑器的图片功能 改成支持异步上传功能,然而查了一些资料,改了一些代码,还是没有起到我想要的效果。

其实换个思路想,对于博客这样一个小型的网站,图片资源不会很多,即使存入数据库,在体积上也是可以接受的,而且还减少了图片管理的麻烦~





]]>
Tue, 18 Jul 2017 11:20:49 +0800 admin 35
2017 上半年总结 34 擦咧

域名和服务器 一直养了五年,但是博客一直因为 自己的假完美 的毛病 拖延到现在 没有更新。

终于,在自己不想玩游戏也不想看片子的夜生活中,开始了改造博客的工作。

现在的博客首页模板是参考nodejs开发的firekylin的默认模板,仅仅就是模板。我把万恶的nodejs 语法弄掉了。

后台呢,就已经用 我想了半年的vue2+elementUI 的架构 弄了个半成品,效果不错,好歹也是前后分离。

vue2+elementui的入手 最好还是从 这个repo https://github.com/lin-xin/manage-system 入手学习,一步步深入.

熟悉了组件的开发和组合,接下来就可以接触vuex来保存用户状态,管理权限等

参考repo:https://github.com/sailengsi/sls-admin

还有一个国人repo https://github.com/PanJiaChen/vue-element-admin

学习了三个repo,基本可以对nodejs的前端开发组织 是有点心得了。

工作中 上半年 陆陆续续在弄小程序,可以说对小程序 还是很有 信心的,无论是技术 还是前景.

]]>
Sat, 08 Jul 2017 15:54:55 +0800 admin 34
毕业五年 32 毕业五年了。这五年中在社会这个大学中感悟了很多东西。对社会的认识整体上还是偏于现实。

先从毕业那年开始说吧,毕业前并没有拿着简历去找工作,七月份就去福建省找工作,面试了几个后最后在厦门那边找到一个开发职位。这个岗位上仅作了三个月,未转正就辞职了。具体原因呢,外因是项目快上线了,转入维护阶段,而且还在试用期,直接找我谈了。内因呢,我本人性格偏内,在工作中表现的很傲,工作上是没问题,就是到吃饭的时候习惯了一个人吃饭,他们是集体一起吃饭,可能在这一点上对领导产生了消极的影响。(领导对你的印象确实很重要,工作了几年就能感觉到)

之后就回老家找了一份当地论坛门户的技术维护工作。工作到现在也有五年了。总体上是一个普通的工作经历,做过几个独立的系统,在技术业务上比较主动,学习一些工作之外的东西。

除了工作之外,本人业余时间算是比较单调,晚上没有什么夜生活,周末会骑车或者爬山去锻炼。还是单身状态,相过几次,没什么深刻印象就没下文。对于这些经历,体会还是有的,年龄大的女的 真不好相处,对男人的条件 要求相对现实(基本还是看脸 和家庭),谈成的概率不高。

五年的生活和工作事情 大致基本交代完了。下面就是一些对社会,对自己的反思。

上大学是在大学里面学习本领,对社会的认识还是不够清晰(只有兼职打工 才能接近社会的本面目),图书馆泡多了,看的书多了,专业书和技术书对社会的描写其实是很少很少的,要提前体验社会,必然是要看一些现实小说和纪实报告。

说白了上大学就是对自己的世界观社会观的建构,偏于美好的那种,对毕业生活有点美好的幻想,毕竟处于大学生活也是美好的,容易把这种感觉转移到社会生活。 而毕业后其实就是社会对自己的世界观和人生观 的一个解构。解构具体就是把一些不合现实的想象 给排除了,把大部分普通的事实呈现给你眼前,告诉你本身也是一个普通人。

其实解构换个说法就是看透了一些事情,看透了很多细节。看透这个东西,我不知道是因为经历带来的经验还是因为年纪增长 自然赋予的。但是对我来说,这是一个很好的减少自身欲望的方式,让自己更加接近真实的自己。认识更加真实的自己,其实带来一种是很不忍也是个很无奈的感觉。

记得大学看过一些文章,毕业的三五年对自己的职业发展很重要什么什么。这种说法一般是所谓的成功人士告诉你的经验。对于成功人士的经验嘛。。在大学的时候 很容易当成一个教条去做,现在看来其实就是很自然的事,工作几年的人才能知道这个所谓的经验是不是对错的,其实没有对错,对我来说其实 就是个扯蛋。最扯蛋的就是所谓的职业生涯什么。职业生涯的最优解法,职场的最佳法则什么,只不过是社会的一个遮羞布而已。社会实际上的工作,还有职业 其实是比较复杂的,不是什么鸡汤 都能套上。

还有商业成功人士的故事什么,现在就是个屁,其实就是一个编辑的差事,为了自身谋生活的结果而已。

社会很复杂,很多人,很多事,其实在不同的环境下会呈现不同的心态。我的五年的大大小小的感悟,很乱很杂,也不好与他人交换,而且必然还在以后的生活中 更加沉重 。

其他人的五年 https://www.zhihu.com/question/20187751

再次祝君如意顺心



]]>
Sat, 08 Jul 2017 11:48:00 +0800 admin 32
使用fiddler提高前端开发效率 31 fiddler是一个强大的web开发调试工具,他本来作用是用来记录分析网络请求的利器,可监控本机所有客户端的网络输出流 和服务器返回的输入流,甚至可以修改数据发送。

我使用fiddler有两个主要用途:

  • 本地修改服务器的页面结构样式
  • 使用手机网络代理调试手机应用

本地修改服务器的页面结构样式

这个使用到Fiddler的AutoResponder tab,它允许你从本地的文件直接返回response,而不用将http request发送到服务器上。这种功能适合网页结构的修改,样式调整及调试ajax等开发需求。 具体使用步骤 见:使用方法

使用手机网络代理调试手机应用

要求手机跟开发本地是在同一个网关的网络里,这样手机连接网络的代理可以正常连接到开发机上。 具体fiddler设置:

上面的端口可以设置大于1024的端口,只要没有冲突。 另外一篇教程供参考: 点击查看

fiddler是基于.net平台开发的,适合用于window下。至于linux和mac其他平台上还没有稳定版本的程序使用。寻找类似这个功能的软件,在linux可以使用wireshark,mac则推荐使用charler,虽然两者功能上都不及fiddler丰富,易用。

Fiddler值得web开发工程师去学习,利用。 最后发个完整的中文教程:ref

]]>
Wed, 16 Apr 2014 10:39:44 +0800 admin 31
与osx结缘 30

作为程序员的我,领略过苹果的魅力,希望能够学点苹果系统的开发。但是开发是需要硬件上的投入,我囊中羞涩,只能等着攒够钱去入手一个中意的mbp。


没想到,三月份某天一件事让我忽然决定入手mbp,当然是二手的,新款价格昂贵,自然负担不起。15寸,虽然不是retina屏,但是屏幕足够用,原主还升级内存至8G,硬盘机械盘500G,容量足够。等苹果到手上,我迫不及待去把玩,熟悉苹果触摸+快捷键,给苹果装备有力的应用软件。 苹果跟win的不同,确实是难以一下子上手,鼠标滚轮方向,控制键的位置 都容易在两者中搞混迷糊。


现在用了mbp,我开始了objective-c的学习旅途。提高学习效率无非是多写多总结,另外还要多在专业开发社区(cocoachina社区)逛。入门教程选择《Programming in objective-C》英文版。英文版阅读效率固然比中文稍慢,但是有个诀窍就是多看代码段及代码段上下的解说,还有就是看着陌生的标题可仔细阅读一番。其实看的仔细 没多大用,还是要根据自己学习的进度去写简单的代码来验证自己对语言特性的理解,光抄书上代码没用,还得想办法变个花样出点错让自己长点记性。


现在还在一步步熟悉ios开发,但是基本了解苹果APP开发的基本思路,毕竟跟写网站是不一样的经历,从系统上,流程上思考,还能学点设计方法,比如委托,消息机制。期待早日能够成为合格的苹果开发者,写出像样的APP,一步步走向优秀。
]]>
Fri, 04 Apr 2014 20:58:52 +0800 admin 30
lisp入门从racket开始 29 最近在看一本计算机书籍《计算机程序的构造和解释》,虽然自己已经从事开发已有两年余,但是一直觉得自己对程序的理解知识并非科班出身,只是从图书馆的某语言手册打的基础,还是有必要看下这个经典书籍。前段时间睡觉前花了时间看几页,果然觉得阅读这个学术资料艰难苦涩。看了几页下去还不知道学了什么。但是我看出一个重点,这个课程语言使用了lisp的一个方言,scheme。恩,看此书之前我还没了解过scheme相关语法。

上网查看别人对此书的评价,看到一条评论讲到《how to design programs》这本相对初级的计算机入门教程。这是online版。

这本教程使用的教学语言是racket,官网 。racket是类似lisp的一种语言,兼容scheme。具体介绍可以见官网或者维基百科。百度查了下,这种语言很小众,跟它的定位有关。 racket支持跨平台,在linux下的安装只要执行一个sh文件即可,需要root权限。但是这个文件体积不像一般的脚本那么小巧,体积多达80M。

racket快速入门

可以浏览这个quick,建议边看边写,还是有一定的乐趣。

看完这个快速入门教程,就会觉得lisp这个类型语言真的很特别,特别适合写一些小工具。教程的最后一段会给出进阶建议。基本了解racket后,别忘了去看看《how to design programs》,这本内容比较短,不会给你很大的压力,适合轻松学习。

]]>
Wed, 05 Feb 2014 23:01:33 +0800 admin 29
ubuntu打造编程环境 28 看了张洋的一篇博文。我也决定自己在ubuntu建立一个舒适的编程环境。

linux的编程环境一般离不开终端和编辑器,对于中国用户来说还有一个顺手的输入法。

终端

我的本子装的是ubuntu12.04,默认的终端是官方的gnome-terminal,在长期使用中,我越来越熟悉这个终端也感觉到它的一些不足。linux有一些第三方的终端工具,比如terminator,被称为是terminal的增强版。它的功能是程序员所需要的,比如分屏功能,能支持上下左右分屏,就像screen所做到的一样,更令人惊喜的是它的复制粘贴功能。复制终端内容c+s+v;在终端上使用c+s+v就可以粘贴。一个工具的常用快捷键就可以反映其工具的易用性,比如

  • 上下分屏=>c+s+o,左右分屏=>c+s+e
  • 关闭一个窗口或分屏=>c+s+w,退出终端=>c+s+q
  • 控制窗口大小 快捷式:c+s+ ←↑↓→,切换窗口c+tab 窗口最大化=> F11

这些简直是程序员的福音啊,而且快捷设置上比screen好用。 在ubuntu上安装terminator只要apt-get即可(for ubuntu)

sudo apt-get install terminator

安装完这个,并不等于万事大吉,还得配置一番才能让工具符合你的口味才能提高效率。在配色上可以参考上面给出的博文的一段内容,我也是拿来主义的。

改造vim

接下来就是vim了。我作为一个vim的忠实用户,对于vim的喜爱只能是逐渐增加的。 “折腾vim的功力可以看出一个人的编程功力。”这句话我是绝对相信的。对于菜鸟等级的我,拥有一个强大的vim只能靠自己的双手了,还差一个万金油似的程序员vimrc(调味剂)。好在自己不用研究vimrc配置,只需把大牛分享的vimrc拿过来即可,档次就上了一层。这次vim的配置用的是github上很火的maximum-awesome 。这个repo的安装代码是用于mac上,但是一些文件其实只要手动改下就可以用在linux上。

先git clone 这个repo到本地上吧。对于vimrc,vimrc.bundles,vimrc.local,vimrc.bundles.local这四个文件放在你的用户文件根目录,比如~/下。不用着急于把名字改成带点前缀的名字,用软连接也可以起到同样的效果,而且方便显性打开编辑文件。

ln -s ~/vimrc ~/.vimrc 
ln -s ~/vimrc.local ~/.vimrc.local
ln -s ~/vimrc.bundles ~/.vimrc.bundles
ln -s ~/vimrc.bundles.local ~/.vimrc.bundles.local

如果你有装tmux,也可以把tmux.conf复制到~/.tmux.conf,全局用的话可以放/etc/tmux.conf。

vim的强大除了键盘流的快键式 还有基于vim的各种插件。下面就安装两个著名的插件taglist 和NEROtree,项目开发必备。

vim插件的安装有点麻烦,所以要用更好的包管理插件,像vundlepathogen。上面的max 是基于vundle的。所以我先安装vundle吧。注意看readme介绍,有安装步骤。我们需要做:

mkdir -p ~/.vim/bundle
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

vundle安装好改下vimrc.bundles,注释掉一些自己用不着的插件(等以后慢慢研究)。上面保留taglist.vim和nerdtree;启动vim,输入命令:BundleInstall。vundle就开始下载插件到~/.vim/bundle里。安装好taglist和NEROtree重启vim或gvim可以正常使用。NEROtree 的:NERDTreeToggle绑定的快捷键是,+d,:NERDTreeFind绑定到键盘的,+f。上面的配置没有绑定taglist快键式,我用这个

"taglist
let Tlist_Show_One_File = 1
let Tlist_Exit_OnlyWindow = 1
let Tlist_Use_Right_Window = 1
let Tlist_GainFocus_On_ToggleOpen = 1
map <F4> :TlistToggle<cr>

上面的更改最好放在~/vimrc.local。 另外安装taglist.vim后要记着需要ctags-exuberant这个命令支持,可以通过sudo apt-get install ctags-exuberant来安装。


插件装完我们就来谈谈配色。以前用的是vim自带的配色,喜欢背景偏暗的scheme。这次配色推荐使用vim-solarized,同样可以用vundle安装或者pathogen安装。这里配置安装还是谈谈怎么用pathogen安装,pathogen安装请看这里。记得要在vimrc加上execute pathogen#infect()。vim-solarized安装:

git clone git://github.com/altercation/vim-colors-solarized.git ~/.vim/bundle

参考完记得在vimrc.local后面加上这么一行,

set background=dark
colorscheme solarized

更具体的话可以这样。

if has('gui_running')
        set background=light    // for GVIM
else
        set background=dark     //VIM 
endif

重启vim,强大的vim就在你手下了,在这里仿佛看到了自己人生的巅峰。。虽然是站在别人的肩膀上。

输入法

linux下面没有趁手的中文输入法,极其考验中文用户的忠诚。qq不能用神马的都无所谓,在linux打字都不爽,一般很难用多久。前面折腾过几次,以失败告终,不是编译错误就是无法启动(已重启)。这次看张洋说的貌似似乎能用传闻中的搜狗输入法了。 不用说,立马卸掉ibus,换上fcitx的小企鹅。 重启下机子能用,输入中文真是特别爽,换个暗黑的皮肤和字体大小就可以嚎嚎叫了。


祝君玩的痛快。

]]>
Thu, 02 Jan 2014 22:17:55 +0800 admin 28
迟到的年底总结 27 只有到年底了,才能唤起人们对时间的敏感,对自己一年所做所为做一个仔细或粗糙的感概。

我的2012

毕业前的半年,一个月的艰苦实习生活,让自己觉得自己对大城市的生活有一份陌生的隔离感。返校后就开始打算享受剩下的日子,泡图书馆,写论文看美女,就这样到了六月份,拿着证书光荣地走向了社会。七月份在厦门有幸找到一个开发工作,三个月的项目让我对自己的技术,还有市场需要的技术需求 有了基本的了解。这段工作注定是难忘的经历。人要有缘才能在一起共事,生活,然后又因为各种机缘离开。

我的2013

有一年的时间在老家的一个当地最大的论坛做着技术维护的话。关于一年来对业务和技术上的想法很多,但是也不好仔细写。虽然希望远离大城市沉重的物欲,但也找不到熟悉的圈子,也同样在这一个小地方会经常有不满足安逸的念头,希望出去闯闯。 人就是这样矛盾,念头起起落落,最终还是过了时间。

我的2014

期待能够做好时间管理,有计划总结自己的工作经验和技术知识,在技术继续深入。可能会离开现在的工作去外面。期待能够有一个合适的对象。

祝大家在新的一年以新的心态开始新的生活。2014,我来了!

]]>
Tue, 31 Dec 2013 23:00:52 +0800 admin 27