[心得] github每月一語分享

看板Soft_Job作者 (猜心)時間8年前 (2016/02/29 21:04), 8年前編輯推噓16(16017)
留言33則, 18人參與, 最新討論串1/1
好讀版 http://jintin.github.io/blog/2016/02/28/monthly-github/ 當工程師好幾年了,但一直都只專注寫Java,雖然對Java沒什麼特別不滿意的地方, 但偶而也想多試試其它語言來增加自己的視野,於是大概在半年前開始給自己一個挑 戰,每個月用一個不熟的語言寫個小工具分享到github上,很快地累積了好幾個小專 案,分享自己的心得也順便介紹這些工具給大家,希望對大家有所幫助。 jgit (Ruby) git是個很高效好用的版本控制工具,但如果同時有多個專案使用上有點不方便。jgit 就是想要解決這個情境,對git做擴展,解決在任意目錄下查詢任意一個或多個專案 的git狀態,簡單說就是把git command分配到很多個目錄下執行。 比如說 jgit status 可以取得目前群組的所有專案之 git status 的結果,如果同 時要開發或維護多個專案的時候很方便。 範例如下: --- $ jgit ls A: /Users/Jintin/Downloads/sample/sampleA B: /Users/Jintin/Desktop/sample/sampleB $ jgit status - Task:A On branch master nothing to commit, working directory clean - Task:B On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: newFile.json no changes added to commit (use "git add" and/or "git commit -a") --- 心得: 寫ruby一開始的時候蠻不習慣的,少了型別、不用compile、語法也很不習慣。 但慢慢覺得動態語言在小型專案下真的可以很方便解決很多問題,gem 的設計很棒, 不用compile習慣後開發速度也提升不少。 更多資訊可以參考 https://github.com/Jintin/jgit transai (JavaScript) transai 是處理Android, iOS多國語言的工具,可以在Terminal把這二個平台的語言檔 解析出來合併為csv格式,等翻譯完了之後再轉回各自的資料夾中。 範例如下: --- $ transai load -a ~/android -i ~/ios --from en --to de -c ~/strings.csv $ transai save -a ~/android -i ~/ios --from en --to de -c ~/strings.csv --- 心得: JavaScript跟Ruby一樣是動態但語法平易近人多了,而且 npm 、 node 的設計 又更完善方便,是很好入門的一款語言,在各領域也都有很好的發揮機會,雖然不想承 認但的確是最有機會統一程式語言的語言。 更多資訊可以參考 https://github.com/Jintin/transai andle (Python) Android Studio問世之後,大家一定很喜歡可以把dependency設定在build.gradle的特 性,但相對的這個檔案的管理就變成一門學問了,你知道哪些library有更新的版本嗎 ?就算知道如果你有十個專案你要一個一個改嗎? andle 就是幫你解決dependency version的工具,可以直接在Terminal更新所有 library為最新版本,如果你比較嚴謹也可以加上 -d 只會列出新版版號不會修改。 範例如下: --- $ andle update -d -g -r check ./build.gradle com.android.tools.build:gradle: 2.0.0-beta4 -> 2.0.0-beta6 check ./A/build.gradle com.android.support:cardview-v7: 23.1.1 -> 23.2.0 check ./B/build.gradle ok check ./C/build.gradle com.android.support:support-v4: 23.1.1 -> 23.2.0 com.android.support:design: 23.1.1 -> 23.2.0 check ./gradle/wrapper/gradle-wrapper.properties ok --- 心得: 又是一門動態語言,Terminal幾乎都是動態語言的天下,語法上最大不習慣就是 用縮排取代括弧,其他結構上跟Ruby有點類似,有點痛苦是Python2.X跟Python3.X有大 改版,所以要二種都測試過比較保險,這種新版本一直出來,舊的版本又不能放棄的感 覺跟Android實在是太契合了。 更多資訊可以參考 https://github.com/Jintin/andle Swimat (Objective-C) Swift是我除了Java以外很喜歡的一個語言,也是我接觸iOS開發的第一個語言。但Xcode 對它的支援其實還蠻不足的,除了很慢連個基本的自動排版都沒有。 Swimat就是一個簡單的Swift排版工具,可以安裝在Xcode裡,支援Tab或Space縮排、可 以存檔自動排版。 心得: 原本排版Swift的程式,應該要用Swift寫,但因為要給自己挑戰選了不熟的 Objective-C,雖然沒什麼問題但寫起來真的很贅,無法支援 command line 也是一大敗筆 ,之後要找時間換回Swift也是一個大工程。 更多資訊可以參考 https://github.com/Jintin/Swimat DroidLane (Groovy) 寫完了Xcode的plugin後,就開始想是不是也可以幫Android這邊也寫一個。因為自己寫 太多小app,上架其實很麻煩所以就決定寫個自動上傳的工具。安裝後就不用打開瀏覽器 可以在Android Studio裡直接上傳apk。 心得: Groovy其實就是Java的加強版,帶來一些好處也帶來一些缺點,我覺得最大缺點 就是速度慢還要多包一些Groovy的library。 更多資訊可以參考 https://github.com/Jintin/DroidLane aliasme (Shell) 身為工程師就是要用 command line 啊,但其實大家都不喜歡打字,切換目錄的時候如 果太遠其實很不方便,aliasme就是要解決這樣的需求,讓大家可以很方便的切換目錄。 範例如下: --- $ al add A ~/dirA/subA/A $ al add B ~/dirB/subB/B $ al A $ pwd /Users/Jintin/dirA/subA/A $ al B $ pwd /Users/Jintin/dirB/subB/B --- 心得: 跟寫Object-C一樣會感覺到時代的眼淚,如果可以用高階語言寫的就盡量用高階 語言寫吧… 更多資訊可以參考 https://github.com/Jintin/aliasme -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.35.214 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1456751055.A.553.html

02/29 21:23, , 1F
02/29 21:23, 1F

02/29 21:48, , 2F
好像有點猛 推推
02/29 21:48, 2F

02/29 22:12, , 3F
推 這樣就對惹...XD
02/29 22:12, 3F

02/29 22:49, , 4F
推了再上
02/29 22:49, 4F

02/29 22:51, , 5F
謝謝分享
02/29 22:51, 5F

02/29 23:24, , 6F
第一個google有寫一個python tool叫repo
02/29 23:24, 6F

02/29 23:53, , 7F
推,第一個感覺很有趣
02/29 23:53, 7F

03/01 01:59, , 8F
03/01 01:59, 8F

03/01 02:31, , 9F
推個耐心!
03/01 02:31, 9F

03/01 03:50, , 10F
猛猛的 感謝分享
03/01 03:50, 10F

03/01 08:35, , 11F
repo好像蠻像的 不知道可不可以用group的方式
03/01 08:35, 11F

03/01 08:36, , 12F
還是一定要寫 [<PROJECT0> <PROJECT1> <PROJECTN>]
03/01 08:36, 12F

03/01 12:27, , 13F
repo有manifest file在管控project
03/01 12:27, 13F

03/01 12:32, , 14F
抓個小錯誤 那個語言叫做Objective-C...不是Object-C
03/01 12:32, 14F

03/01 13:03, , 15F
最後一個似乎沒有autojump 好用
03/01 13:03, 15F

03/01 21:17, , 16F
謝謝大家的支持與建議 如果有方向可以改得更好一點
03/01 21:17, 16F
※ 編輯: LinJohn (111.249.35.214), 03/01/2016 21:17:51

03/01 21:18, , 17F
aliasme未來也可以朝把整串command記起來的方向前進
03/01 21:18, 17F

03/01 21:19, , 18F
不知道大家覺得這樣有比較好嗎?
03/01 21:19, 18F

03/01 21:20, , 19F
Objective-C已改 chchwy感謝指正
03/01 21:20, 19F

03/01 21:22, , 20F
如果大家有興趣一起改得更好也可以來信討論
03/01 21:22, 20F

03/01 21:24, , 21F
目前想到的有transai web介面 swimat改swift
03/01 21:24, 21F

03/01 21:26, , 22F
andle custom repository, jgit 支援tab
03/01 21:26, 22F

03/01 21:28, , 23F
DroidLane可以把截圖的功能也補上
03/01 21:28, 23F

03/01 23:28, , 24F
推推!!!
03/01 23:28, 24F

03/02 08:33, , 25F
每篇文章都會讓樓上抓到 真是太強了
03/02 08:33, 25F

03/02 09:21, , 26F
03/02 09:21, 26F

03/02 13:03, , 27F
push
03/02 13:03, 27F

03/02 20:24, , 28F
整串command記起來不就變ubuntu的history XD?
03/02 20:24, 28F

03/02 22:26, , 29F
我的意思是可以把一行或幾行指令轉成'al XXX' 這樣
03/02 22:26, 29F

03/03 11:06, , 30F
ubuntu history 只要用"!${index}"就可以執行曾經敲過的co
03/03 11:06, 30F

03/03 11:06, , 31F
mmand
03/03 11:06, 31F

03/03 12:51, , 32F
03/03 12:51, 32F

03/03 20:35, , 33F
我的意思不是叫出歷史指令 而是想要取代複雜指令
03/03 20:35, 33F
文章代碼(AID): #1Mr47FLJ (Soft_Job)