Just My Life & My Work

Posts tagged ‘programming’

Swift 第4版本

Swift已經升級到第4版本,我還是沒認真在寫Swift 4,主要是因為它還不太穩定,這幾年必須多花時間去改寫語法到最新版本,於是在有限的開發時間下,我依然對相對穩定的Objective C情有獨鍾XD~

舉一個例子,當我要使用Open Source ChartsXcode會偵測是否相容,否則就無法編譯成功,如圖:

Swift 第4版本.png

好在只要選擇到Swift 4,就能成功編譯!也感謝超好用的圖表開源Charts作者,願意每次Swift升級就改寫語法,造福我們成千上萬的iOS開發者

怎麼在Objective C中使用Swift Open Source?可參考文章:在Objective C專案使用Swift第三方套件

廣告

[C/C++] 如何引用C標頭檔

最近要研究1992年程式高人寫的原始碼,看到Xcode上黃色驚嘆號標示說是非常早期的語法,好在還能編譯運作,不然要以目前C語法再刻一次,我真的會想去撞牆啊XD~

話說,我學生時代習慣用C++寫程式,現在想以C++來引用C標頭檔,雖然在Xcode中可以將.c改成.cpp,就能成功「騙」過編譯器,但那樣根本是多此一舉,明明是C語言還要宣示為C++語言。

查詢後原來很簡單如何引用C標頭檔,使用extern保留字標記C,大括號中就是引用C標頭檔。

[C++] 如何引用C標頭檔.png

高人解釋:

For a list of C standard C headers (stdio, stdlib, assert, …), prepend a c and remove the .h. For example stdio.h becomes cstdio.

For other headers, use

extern “C"

{

  #include “happy_header.h"

}

參考:Including C headers inside a C++ program

糟糕的API製作

一年前也就是2017/1/27的紀錄,我經手一個幼稚園案子,我以為只要負責開發App的部分即可,所以報價非常的親民,因為對方是我非常好的老闆朋友。不過最後證實,這個案子讓我公司虧錢,時間成本多出3倍,為了斬斷所有牽絆,在卡卡頓頓開發一年後,宣布不再接手維護。

以下就描述我身為軟體架構師觀察到的問題:

API開發

此案不明原因分成三個人⋯⋯

  • A創造規格人(實作原型)
  • B建立架構人(實作雛形)
  • C開發實作人(實作成品)

幼稚園案子.gif

照理說,ABC要同一人才是!因為每個人的邏輯思考不同,若分為三個人接續製作,最後成果極度可能四不像,那可是會大大增加開發成本!

(繼續閱讀…)

[圖解] 傳遞參照與值 (Pass by Reference and Value)

還記得大一剛學程式設計,就被這兩個玩意兒給搞糊塗,傳遞參照與值 (Pass by Reference and Value)有圖解的話就非常清楚囉~

pass-by-reference-vs-pass-by-value-animation.gif

有人問Reference咖啡顏色不一樣,是怎麼一回事XD~基本上Reference的杯子就是同一杯啦!半透明杯子表示並不是主體。

以物件的角度:

  • Reference:一個杯子
  • Value:兩個杯子

以咖啡的角度:

  • Reference、Value:同樣容量的咖啡

印象中還有個詞叫做Pass by Copy,我會把它當作跟Pass by Value一樣。

現在覺得能把複雜的概念簡單化的人很厲害,而不是把簡單的東西複雜化,若是衍伸出新的見解就另當別論囉~

這張圖是我看到靠北工程師粉絲團所貼,身為偽資深工程師的我看到貼文時常能會心一笑,我剛去英國留學一年的梅姬(Meggie)颱風有時候也會有感覺,想認識她的人可以參考氣象局這篇文章:當老師有暑假真好

[圖解] 程式語言熱門排名

想要學寫程式的人,總要先知道自己的目的是什麼?如果還不知道的人,可以去測驗一下圖解我該學什麼程式語言?

亦或者可以參考世界上最多人使用的程式語言,在GitHub上程式語言熱門排名圖解

programming language rank on github.jpg

可以看到Javascript從2013年成為第一熱門語言,大概跟Node.js發展有非常大的關係。Objective-C則在2015年從排行榜消失,猜測是因為越來越多開發者轉向Swift發展。

表現越來越突出的是Java,我公司資深工程師楊大建議我學Java,對未來無往不利,然而我卻想要學Javascript。哈~透過Node.js,就能寫出前後端的服務!

參考:

[圖解] 除錯五個階段 (The 5 Stages of Debugging)

如果沒有除過錯的人,就不是個稱職的軟體工程師。也就是說,只要你是個軟體工程師,肯定除過錯!剛好碰見一張讓我感同身受的圖解除錯五個階段 (The 5 Stages of Debugging),仔細想了一下,我好像也差不多經歷如此狀況。

圖解 除錯五個階段 The 5 Stages of Debugging (繼續閱讀…)

[圖解] 如果論文跟程式語言一樣

週末就來點幽默小品吧~學過許多程式語言的我,看到圖解如果論文跟程式語言一樣自然會心一笑,因為真的是「吐嘲」到語言的痛處啊!

現在我主要寫的語言是Objective C,對於不熟的語言抱持著敬佩的態度,畢竟要能廣泛被程式設計師使用,一定有其獨到之處,所以不用太在意人家會的語言而自己卻不會唷~

以下有八種程式語言,如果你精通其中一項,而且知道其他語言,那麼大概會知道教授為何那麼說嚕~

如果論文跟程式語言一樣

重點是⋯⋯知道自己要的是什麼就好啦!

老實說,我看不懂HTML那個花盆是啥意思耶><~

LATEX這語言XD?

請高手幫我解答一下⋯⋯

我在想,要是把Objective C也畫上去,圖中那個教授會講什麼話呢?「為什麼你要用那麼多中括號[]?

參考:如果把不同語言的程式比作將受批評的論文漫畫:如果用編程語言來寫作文

標籤雲

%d 位部落客按了讚: