五個值得嘗試的前端開發工具

jopen 10年前發布 | 8K 次閱讀 工具

五個值得嘗試的前端開發工具

在過去的幾年時間里,出現了許多全新的網頁應用程序,不過,由于應用程序的功能越來越豐富,也導致了前端開發的復雜度大幅增加。

現在也有不少前端開發工具,比如Backbone和EmberJS框架都能提供穩定的App開發解決方案。同時,Javascript的應用也越來 越常廣泛,而且它還能和Node.JS在后端協同工作,快速搭建易于擴展的網絡應用。實際上,為了應對前端開發復雜度所帶來的挑戰,開發人員創建了許多工 具來簡化開發流程。從測試框架,到分析工具,前端開發工具已經非常成熟了,正是得益于這些有用的工具才讓用戶體驗到最佳的互聯網服務。

開發人員都喜歡使用高質量的軟件開發工具,本文就推薦五個優秀的前端開發工具和框架,希望能供開發人員參考。

Chrome dev Tool

五個值得嘗試的前端開發工具

這是目前最好的前端開發工具。自從其誕生以來,Chrome在其開發者工具中投入了大量精力,而且直到現在,谷歌仍在不斷優化這些工具。一般而言,谷歌會在每六周發布對Chrome開發者工具的優化,并推出一些全新功能。

Chrome開發工具是各種工具組成的套件,開發人員可以實時編輯DOM  (HTML)/CSS,逐步調試JavaScript,并幫助開發者更加深入地進行性能分析。Chrome開發工具甚至還可以新增 terminal(DevTool Terminal是一款Chrome開發工具的擴展,可以幫助開發者在瀏覽器中訪問終端。如果你經常在命令行工作,這 款擴展將十分適合你),幫助開發人員解決相關渲染性能問題。

DOM/CSS編輯器是一個非常強大的工具,可以為你的開發團隊提供實時反饋,在開發UI/UX新功能的時候可以支持快速迭代。

在官網和谷歌開發者的油Tube頻道上面有許多含金量很高的信息。其中一個名為“命令行API”的章節就為開發人員提供了大量非常有用的命令。比如,你可以調用一個特殊的“復制”功能,就可以從控制臺復制任何東西(比如對象,函數返回)到剪切板上面。另外,在HTML5 Rocks上面還有很多優秀的教程。如果你的好奇心很強,并且想了解瀏覽器究竟是如何工作的,那么能在這些教程里學到很多東西,幫助你全面掌控應用程序開發周期。

如果谷歌不斷優化Chrome開發工具的話,這套工具最終會成為網頁的集成開發環境(IDE),直接和瀏覽器進行捆綁,為開發人員提供更加強大的開發空間。

Grunt

五個值得嘗試的前端開發工具

Grunt在任務自動化中很有用,它是一個基于任務的JavaScript命令行構建工具,支持捆綁任務插件。此外,Grunt是可擴展的,開發人員可以按照自己的需要編寫不同的任務,而且Grunt支持將多任務整合在一起,提供更強大的功能。

如今,Grunt已經不再局限于簡單的前端自動化工作任務流了,在PHP開發時,就可以使用Grunt進行測試工作,如下所示:

terminal = require('color-terminal')

log = (error, stdout, stderr, cb) ->     if error         terminal.color('red').write stdout     else         terminal.color('green').write stdout

    cb()

module.exports = (grunt) ->     grunt.loadNpmTasks 'grunt-contrib-watch'     grunt.loadNpmTasks 'grunt-shell'

    grunt.initConfig         testFilepath: null

        watch:             php:                 options:                     event: 'changed'                     spawn: false                 files: [                     'foo/bar//*.php'                     'foo/bar//*Test.php'                 ]                 tasks: 'shell:phpunit'

        shell:             phpunit:                 options:                     callback: log                 command: 'echo <%= testFilepath %> && phpunit -c app <%= testFilepath %>'

    grunt.event.on 'watch', (action, filepath, ext) ->         regex = new RegExp("foo/bar/([a-z0-9]+)/([a-z0-9/]+)", "i")

        if filepath.match regex             if filepath.indexOf('Test') is -1                 testFilepath = filepath.replace regex, "foo/bar/$1/Tests/$2Test"             else                 testFilepath = filepath

            grunt.config 'testFilepath', testFilepath</pre>

Grunt還可以用來創建工作區,此外開發人員在創建一個新項目的時候,往往需要做一些繁瑣且重復的必要工作,而Grunt提供了不少插件,可以使這些瑣碎的工作變得簡單。

LiveReload

五個值得嘗試的前端開發工具

每天你會在鍵盤上點擊多少次“刷新”鍵呢?很多次吧。LiveReload是一個簡單的網頁協議,可以觸發事件到客戶端,無論文件什么時候被改動,客戶端都能及時刷新、處理事件。

一般來說,LiveReload可以和Grunt捆綁在一起使用,搭建本地前端開發環境。而在客戶端,LiveReload則會提供一個簡單的 Chrome擴展程序。談到Chrome擴展程序,Chrome  store絕對是一個好地方,你可以到上面逛一逛,就會發現里面有不少好東西,這里推薦幾個,拋磚引玉:

1、  WhatFont,它是一個書簽欄工具,采用鼠標懸浮功能特性,點擊后就可以告訴用戶在網站上所指的字體屬性、字體名稱、大小、顏色等等,非常方便。此外,它還可以幫助開發人員調試字體風格。

2、  Page ruler,它可以幫助開發人員測量網站中任何元素的尺寸,像素的寬度和高度。

3、  Proxy SwithcySharp,它可以用來幫助開發人員調試本地化信息,包括默認貨幣、電話號碼等

4、  當然,最受歡迎的當屬Chrome app。

Mocha/Chai/Sinon

反復測試有沒有讓你覺得想吐?通常情況下,如果在前端開發的初始階段沒有設計好測試,那么后面的工作往往會變得非常困難。幸運的是,我們有不少優秀的測試框架,它們就像之前使用過的那些開發語言一樣強大。目前主流的兩個測試框架就是Jasmine和Mocha。

按照筆者已往的經驗,更愿意推薦Mocha。它是一個功能豐富的Javascript測試框架,支持異步測試,這在Javascript中經常要用到。下面是兩個測試案例,第一個是用Jasmine寫的,第二個使用Mocha/Chai寫的,如下所示:

Jasmine

AsyncProcess = require('./async-process').AsyncProcess

describe('AsyncProcess', function() {     var asyncProcess;

    beforeEach(function() {         asyncProcess = new AsyncProcess();     });

    it('should process 42', function() {         var done = false;         var processed = null;

        deferred = asyncProcess.process();         deferred.then(function(result) {             done = true;             processed = result;         });

        waitsFor(function() {             return done;         }, "the async process to complete", 10000);

        runs(function() {             expect(processed).toEqual(42);         });     }); });</pre>

Mocha/Chai

AsyncProcess = require('./async-process').AsyncProcess;
Chai = require('chai');

Chai.should();

describe('AsyncProcess', function() {     var asyncProcess;

    beforeEach(function() {         asyncProcess = new AsyncProcess();     });

    it('should process 42', function(done) {         deferred = asyncProcess.process();

        deferred.then(function(processed) {             processed.should.be.equal(42);             done();         });     }); });</pre>

Jasmine所選的為默認語法,只有通過插件才能有Mocha一樣的功能,而后者簡潔的多。

和Jasmine不同,Mocha僅提供行為測試結構,這種測試框架通常對應的是行為驅動開發,也就是BDD。但是這點并不會對Mocha產生負面影響,它可以與Chai和Sinon這樣的輔助測試工具結合使用。

下面,就是調用Sinon測試工具集內的spy類進行測試的一個例子:

// Function under test
function once(fn) {
    var returnValue, called = false;
    return function () {
        if (!called) {
            called = true;
            returnValue = fn.apply(this, arguments);
        }
        return returnValue;
    };
}

it("calls the original function", function () {     var spy = sinon.spy();     var proxy = once(spy);

    proxy();

    assert(spy.called); });</pre>

Chai的特點在于,開發人員可以使用和自然語言相近的聲明語法。不妨可以參考下面的例子,調用Chai中的should聲明語法。

foo.should.be.a('string');
foo.should.equal('bar');
foo.should.have.length(3);
tea.should.have.property('flavors').with.length(3);

很清晰,對嗎?現在就趕緊在你自己的代碼上測試一下吧!

Karma

五個值得嘗試的前端開發工具

雖然筆者把Karma放在了最后一個,但它仍然是一款非常重要的前端測試工具。Karma的前身是Testacular,一個Javascript 測試工具。Karma開發者和開發AngularJS的是同一批人。如果你使用Mocha、Chai以及Sinon,那么連續不斷的運行上述這些測試框 架,會提供實時的反饋嗎?

Karma允許開發人員從工作站(在持續運行模式下)到生產調用指示,都能進行測試。它還支持多種瀏覽器,包括Chrome、Firefox、IE、PhantomJS,讓你對自己的代碼充滿自信。

在進行開發工作時,第一快樂的就是在自己的電腦上寫代碼,并實時得到結果反饋;第二快樂的,就是自己的程序能夠應用在各種瀏覽器上面,想必上述這兩 點能夠得到絕大多數開發人員的共鳴吧。現在,你是否已經做好了準備,化身成為一個“前端忍者”,去挑戰一切困難了呢?當然,這里沒有提到一些文本代碼編輯 器,比如Sublime Text和Vim,但是它們都是很好的開發工具。另外,本文使用的例子都來自GitHub Gist

如果您恰巧也是一名前端開發工程師,那么是否也有自己喜歡的工具呢?歡迎在下面的評論欄里和大家分享。

VIA TNW/雷鋒網

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!