Git flow 開發方式與流程

在ihower的日誌中「Git flow 開發流程」有提到一個git的延伸工具,看起來還蠻適合我們未來計畫辦公室的需要,它的作用於像這樣子的情況:

  • 主要分支
    • master: 永遠處在 production-ready 狀態
    • develop: 最新的下次發佈開發狀態
  • 支援性分支
    • Feature branches: 開發新功能都從 develop 分支出來,完成後 merge 回 develop
    • Release branches: 準備要 release 的版本,只修 bugs。從 develop 分支出來,完成後 merge 回 master 和 develop
    • Hotfix branches: 等不及 release 版本就必須馬上修 master 趕上線的情況。會從 master 分支出來,完成後 merge 回 master 和 develop

雖然有些狀況似乎要靠自己動手操作並想像該情境才知道這些作用,像這樣優秀的團隊都會去用這樣子的方法來開發,那麼不去試怎麼行呢 😉

git flow 相關資訊:

https://github.com/nvie/gitflow

Git-flow 讓 Dev Team 步上穩健開發之路

讓git也可以同時push兩個remote repo

Git是一個非常神奇的分散式版本控系統,除了可以在本上機commit之外,若要把code push上遠端的位置中也是非常的便利,也能達到code備份的效果。

因此git也就延伸了所謂social coding 這樣子的文化進而發展了 Github 這樣的為程式設計師們可以交流的社群網站。

不過,現在SourceForge也在進行網站改版的工程,也加入git的功能,而現在我把code是push在那裡的,但我在github也有空間,可是我想把source都放在這兩個地方,所以我找到了一個方法。

只要在 .gt/config 加入以下幾行:

[cc lang=”bash”]
[remote “origin”]
url = ssh://yourname@git.code.sf.net/p/yourrepo/code
url = https://github.com/yourname/yourrepo.git
[/cc]

然後git push remote origin 它就幫你push兩次了。

真是太讚了!

100個神盾級的實用開發方法與工具

本文來自原文:100 Terrific Tools for Coders & Developers

主要是介紹以下100個對於軟體開發工程師有幫助的工具,包含了IDE開發軟體,雲端服務,Editor 以及資訊教學。

一百項要一個個看實在是太多了,未來有空再慢慢看。

LEARN TO CODE

多租戶應用 Multi-Tenant

在以前的公司為了要節省一些成本,我自己用 PHP+MySQL 無師自通地開發了一個多租戶應用的服務。

想當初在開發這個服務的時候只是為了要讓資料更能集中管理,而且可以用Apache Virtual Host 的方式讓一個民宿可以有不同的網址,不同版型, 但可以存取同個資料,共同的後端資訊管理,達成單點維護與搜尋最佳化的目地。

後來,終於知道,這樣的做法就叫做「多租戶技術」英文叫做「multi-tenancy technology」關鍵字搜尋為「Multi-Tanant」。

這麼妙的技術,林北老早就在實做了 (挺!!)

相關資訊:

用Ruby on Rails 實做 Multi-Tanant

何謂 Multi-Tanant

多租戶技術 wiki

Multi-Tenant Data Architecture 分享

Multi-Tenant Data Architecture

先提供一些連結資訊,未來有時間再把實做分享出來。

 

PHP, Perl, Python, Ruby 的比較

這一年換新的地方上班學到很多。

從 PHP 到 Ruby 。雖然沒有學的很透徹。但接下來又要學 Python 了 。

雖然程式的邏輯都差不了多少,而每種語言都有它不同的寫法。

但學習新的東西是很令我超級興奮的!

這四種語言的差異表:

Interpreted Languages: PHP, Perl, Python, Ruby (Sheet One)

這幾天要先學好 Python 的語法,並用 PHP 熟悉的方法去學習。

Apache 的 mod_rewrite

最近正想要重寫一套屬於自己實用的 PHP 框架,第一步重要的就是將 PHP 的 Reuqets 寫成一個有用的網址,讓這個新框架在未來變的比較實用。

如果你現在寫的PHP程式還在這網址寫成這樣:
[cc lang=”bash”]
http://www.aaa.cvom/news.php?id=12345
[/cc]
或是在寫購物車時是這樣寫:
[cc lang=”bash”]
http://www.aaa.com/product.php?id=123123
[/cc]
下單的購物車是這樣寫:
[cc lang=”bash”]
http://www.aaa.com/shoppingcart.php
http://www.aaa.com/pay.php
http://www.aaa.com/payok.php
[/cc]
告訴你,這樣寫實在是爛透了!!
Continue reading Apache 的 mod_rewrite

profile 的一些設定 .bash_profile 跟 .vimrc

最近想要在自己的本機上用 termal 跟 vim 來開發程式,一向很注重環境與外觀的我,只有白底點字的介面跟本就是個垃圾場,所幸今天別計畫的同事一起來玩 vim syntax 的相關操作,而讓我剛重灌不久的 MacBook Pro 有新的色彩。

檔案:“.bash_profile”

[cc lang=”bash”]
alias ls=”ls -G”

function git_branch {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return;
echo “(“${ref#refs/heads/}”) “;
}

function git_since_last_commit {
now=`date +%s`;
last_commit=$(git log –pretty=format:%at -1 2> /dev/null) || return;
seconds_since_last_commit=$((now-last_commit));
minutes_since_last_commit=$((seconds_since_last_commit/60));
hours_since_last_commit=$((minutes_since_last_commit/60));
minutes_since_last_commit=$((minutes_since_last_commit%60));

echo “${hours_since_last_commit}h${minutes_since_last_commit}m “;
}
PS1=”[\[\e[1;32m\]\w\[\e[0m\]]\[\e[1;36m\]\$(git_branch)\[\e[0m\]\n$ ”
[/cc]

呈現之後的畫面就像這樣:

檔案: “.vimrc”
[cc lang=”bash”]
syntax on
set autoindent
set expandtab
set tabstop=8
set shiftwidth=2
set softtabstop=2
filetype plugin on
set nu
autocmd FileType make setlocal noexpandtab
[/cc]

呈現之後的畫面就像這樣:

好啦!開始快樂的coding啦!也可以平順的敲打鍵盤了~

FizzBuzz有何解?

FizzBuzz 是先前在 coding 界最流行最時尚的東東,它是一個sense 。

事情是這樣的:

印出 1 到 100,但如果是 3 的倍數就印 Fizz,如果是 5 的倍數就印 Buzz,如果同時是 3 和 5 的倍數就印 FizzBuzz。

這個東西對於一個普通會 coding 的工程師看起來非常的容易。容易歸容易,但你必需要實做出 DRY (Do Not Repeat Yourself) 原則,也就是說用最少的 coding 行數來達成以上的結果。

FizzBuzz 搭上 DRY 就整個概念變的非常的時尚,因為,簡約就是時尚的原則啊!(茶)
Continue reading FizzBuzz有何解?