登入  |  English
技術專欄

技術專欄

上篇文章:第一次用 PHPUnit 寫測試就上手(上)

3. Data Providers(資料提供者)

資料提供者,能提供多筆的測試資料給測試案例進行多次的測試。

使用資料提供者,能讓測試更簡潔,因為,可以將測試的 assertions 與測試資料分開寫。

一、什麼是測試?測試的重要性?

開發者在撰寫程式的時候,程式不大可能會沒有問題,所以通常就需要驗證程式的執行是不是符合預期。測試程式能用來驗證程式程式的運作是不是正常的,並發現程式中的錯誤,以增加軟體品質。

下面是一個活動報名的系統:

目的

主要介紹 Docker 的實作,會提到以下幾個部分:

  1. 建立 Docker container
  2. 管理 Docker 上的 container
  3. 下載 image 、commit 建立新的 image
  4. 經由撰寫 Dockerfile 來自動建立新的 image

在進入實作前,會簡單介紹 Docker 與虛擬化的差異、Docker 上的重要元件,接下來準備的部分會需要安裝 Docker 及先登入 Docker Hub。

本文翻譯自 NY Times,原作者為 JP Robinson:http://open.blogs.nytimes.com/2014/07/10/emr-streaming-in-go/?_php=true&_type=blogs&_php=true&_type=blogs&_r=1

我們的平台團隊使用 Amazon 的 Elastic MapReduce (EMR) 服務,協助我們從日誌檔收集有用的數據。我們有一些程序會抓取日誌檔,接著壓縮並推送到 Amazon S3 上儲存。感謝 EMR,這套模式聚集出回溯數年之久的龐大資訊,等待我們進行資料重整 (data crunching)。一開始我們用 Python 做了不少苦功,不過我們漸漸地轉而依賴 Go。

網頁開發者 (Web Developer) 一天會在瀏覽器 (browser) 裡重新整理 (refresh) 個千百次是常有的事,但這樣不只會造成開發上的中斷,也會加重雙手的負擔。

這裡凍仁將介紹 LiveReload 給大家,它是個可以在儲存檔案後自動重新整理 browser 的解決方案,LiveReload 雖然不能即時呈現,但可以讓開發環境變得友善點,是值得投資的好工具,若能搭配雙螢幕使用其效果更佳。

(註:本文的撰寫環境是以 Ubuntu 12.04 為主,若版本不同可能會有些許的不同。)

在 JSConf.Asia 2013 , Lea Verou 介紹了 CSS in the 4th dimension (影片) ,引發了整個 Web 界對 CSS 動畫的期盼;在 CSS動畫簡介一文也已經把重點整理好了。

以下我們將會介紹主要兩個 CSS3 在動畫的屬性: Transition 與 Animation ,並配合實例來練習這些技術,後面我也會介紹一些不錯的相關開發工具。

為什麼需要 Code Review

要瞭解為什麼需要 code review 之前,先透過下面這張圖解釋,隨著軟體開發週期越後面的階段或經歷的時間越長,軟體修復 bug 的成本越高。

01

▲圖 1 軟體修復成本與時間關係(資料來源:https://buildsecurityin.us-cert.gov/articles/best-practices/security-testing/risk-based-and-functional-security-testing

◎本文翻譯自 The NewYork Times,原作者為 Jonathan Marballi︰
http://open.blogs.nytimes.com/2014/03/25/the-triumphs-and-challenges-of-logging-in-php-and-really-most-languages-probably/

當你的網站出現問題,從 system logs 作為排除故障的起點,是不錯的選擇。伺服器出錯了嗎?檢查 log。網頁看起來不對勁或有亂碼?檢查 log。在重新設計紐約時報網站過程中,我們趁此機會為後端 PHP 框架,開發出輕量級、彈性好用的 log 類別。

我們決定利用開源程式庫,考量過一些選擇後,我們採納了 Symfony 的 Monolog logger。我們也考量過 KLogger 與 Analog 這兩套受歡迎的 log 程式庫,但是發現它們不符合我們的所有需求。KLogger 對輸出到檔案的 log 而言很棒,但缺乏將 log 輸出到其他管道的彈性。Analog 相當輕量而簡單,但是因為採用了靜態架構,難以在我們的單元測試中進行模似 (mock in)。Symfony 的 log 似乎是最輕量、最富彈性與延展性的。

第二回我們接著要了解 AngularJS 的入門指令,Code 的作用。例如:


1、新增宣告語法 ng-app :

宣告應用程式作用域(Application Scope),在 Document Object Model(DOM)載入後,AngularJS 就會開始尋找 ng-app 這個字,找到的話,就會把這頁面當成是 AngularJS 應用程式。

(1)宣告方式:一份 HTML 只能宣告一個應用程式作用域(ng-app)

<html ng-app>
<html ng-app="appName">

甚麼是 AngularJS?

AngularJS 是一個使用 HTML、JavaScript 和 CSS 來建立 Web 應用程式的框架(Framework),其由 Google 所創建,用來協助單一頁面應用程式的運行。

它可以擴展應用程式中的 HTML 詞彙,從而在 Web 應用程式中使用 HTML 聲明動態內容,並擴展 HTML 的語法,以便清晰、簡潔地表示應用程式中的組件,並允許將標準的 HTML 作為你的模板語言(Template Language)。

◎ 本文轉載自 http://wiki.jiayun.org/PEP_8_--_Style_Guide_for_Python_Code#References,原作者為 Guido van Rossum、Barry Warsaw,翻譯者為:JiaYun

簡介

本文件提供 Python 主要發行版本標準程式庫中的 Python 程式碼所用的撰寫慣例。關於 Python 的 C 實作中所用的 C 語言風格指引,請參考相關的 PEP[1]。

本文件改寫自 Guido 所寫的 Python 風格指引文章 [2],並增添一些 Barry 的風格指引 [5] 的內容。當兩者有衝突時,本 PEP 以 Guido 風格為準。本 PEP 可能仍未完成(事實上,可能永遠不會完工<眨眼>)。

◎本文翻譯自 DZone,原作者為 Raymond Camden:http://css.dzone.com/users/cfjedimaster

當你需要對行動裝置的網頁(或透過 PhoneGap 製作混合的應用程式)進行除蟲有時候是相當痛苦的。除非你是完美的(如果是,你不需要存在,你為什麼需要閱讀這篇文章?),否則在你得到對的方法之前,你將需要反覆透過許多不一樣的建立方式。在這邊文章中,我將著重於一些可行的選項去幫助開發者針對他們的行動裝置上之網頁應用程式除蟲。

◎本文翻譯自 DZone,原作者為 Andrew Trice:http://css.dzone.com/articles/implementing-card-ui-pattern

這些日子,在使用者互動 (user interface) 領域中「卡片」(card) 似乎越來越風靡。有許多地方都可以看到卡片為基礎的使用者互動範例,例如Google Glass、Pinterest、Google Plus、Spotify、Flipboard,以及許許多多數也數不清的地方。

Scala 是新一代的 JVM 語言,作為最普及程式語言之一 Java 的替代選擇,正逐漸贏得用戶青睞。雖然 Scala 的普及度尚不及 Java,但正在逐步地迎頭趕上。有越來越多 Java 開發者學起 Scala,受到 Twitter 的影響,有越來越多公司開始使用 Scala,其前景看來可期。

我們最近完成了報社的實習計劃,這不禁讓我想起,當我還是年輕開發者時,有什麼是我想學的。答案是,我希望我更懂除錯。

在 Android 應用程式中,撰寫程式碼存取內建照相機、預覽結果、儲存成影像,算是基本功,但是現代智慧型手機通常擁有具備眾多功能的複雜照相機,這些功能包括閃光燈、白平衡、各種場景模式、不同的 Instagram 風格相片效果,甚至是人臉偵測。看看 Camera.Parameters API 文件即可得知有哪些功能。Camera.Parameters API 還可以讓你查看執行應用程式的硬體,究竟支援了哪些功能。一旦你知道有哪些參數、功能可用,它們的使用方式都大同小異,接著就讓我們看看如何使用它們。

許多 Android 裝置的相機也有錄影功能,不過程式碼會稍微複雜一點。MediaRecorder API 針對聲音和影像提供了錄製控制功能,因此是你在 Android 上所有錄影功能的基礎。查看其 API 文件以了解其狀態機的完整示意圖。雖然 MediaRecorder 幫你做了許多工作,為了使其正常運作,有許多你得按照一定順序進行的步驟,此一教學稍後將加以解說。我們會使用預覽 XML 和來自先前教學的基本應用程式結構。

簡介

Timeline 可讓網頁建立者在靜態網頁上,顯示複雜的時間線示意圖。

Timeline 是 MIT "SIMILE Project" 釋出的一項開源作品。該計劃提供了一些結構精美的網路小程式 (widget) 供人自由運用,而 Timeline 元件就是這其中之一。

要使用它,您得懂一些基本的 html 與程式設計邏輯才行-很基本的就行。其他的,我會一步一步地示範給您看的。

自從 Ubuntu 11.04 改用 Unity 以後,原先 Gnome 2 狀態通知區就有了大變動,從原先的 Applet 改為 Indicator 了!而 Indicator 在字面上可以翻成指示者、信號...... 但在這裡則是代表右上角狀態通知區的小工具 。

當中凍仁最喜愛的是 indicator-virtualbox,這對需要常開虛擬機器 (Virtual machine) 測試各個作業系統 (Operating system) 的凍仁而言是個好物,相信重度使用者應該都會喜愛它!

前言

相信只要是 Ruby 開發者,都會對 Gem 這個專案套件管理機制非常讚賞。而其中還有一個很棒的工具叫做 bundler,它能在我們布署專案時,協助我們處理專案所會相依的 gem 套件。

PHP 在這方面雖然有 PEAR 這個套件管理庫,但是能夠處理專案相依套件的功能卻付之闕如。所幸網路高手 c9s 也發現了這個問題,因此他便開發了 Onion 這個非常好用的 PEAR 套件管理工具。

在「 利用 GitHub 建立自己的 PEAR 頻道」一文中,筆者曾簡單地介紹 Onion 建立 PEAR 套件的方式,本文將繼續為大家介紹 Onion 的其他強項功能。

◎ 本文原載 XDite 網站,原文章連結

使用 Cancan 的限制:RESTful controller (resource)

一般新進開發者會被 cancan 這兩個 API 搞得七葷八素: load_and_authorize_resourceauthorize_resource

這是因為 cancan 並沒有明顯的在 README 上做出說明:cancan 在使用上是有架構的限制

更多文章...

第 1 頁, 共 8 頁

最先
前一個
1