搜尋

搜尋結果

Coding | Test Case 值得寫嗎?
科技新知
MacauYeah・2023-11-02

很多做軟件開發的朋友,其實都會聽過Test-driven的開發模式。就像Scrum一樣,名氣很高,但試過的人很少。為何會這樣呢?筆者認為,並非開發者懶,而是編寫Test Case的難度真的高。對比開發程式本身的成本,寫Test Case的時間/學習成本一樣高。 造成這些高成本的原因很多。一來是因為開發者並不像過往一樣,慢慢從零寫程式,一般都應用Framework去預構建一些東西,例如打包Database connection pool,Dependency injection。Framework是好用的,但就令你要模擬Mock up特定資源,變得越來越複雜。所以一般中、小型開發,都鮮有人懂得做Test Case(除了大神獨立開發者外)。筆者對於Spring boot等Framework,都摸索了很久,才能模擬一些特定資源。但Framework一更新,就很多部份都要重寫。所以筆者沒有很強調要做Test Case,因為成本認真大。 最近,在摸清一些test case 基本concept後,筆者又重新開始嘗試編寫test case。以下假設用的是object oriented programming 在開發自己的class,為每個public function,都寫test case。很多IDE, 都有提供相關自動生成test case function signature的功能(就是為你的目標function,起一個只有外框的test function。)vscode雖然不是原生支援java,但只安裝基本的java test package,就可以達到同樣效果。 在不依靠framework的情況下,自己class要『引用』的其他class object,不要經過自己使用new來生成object。全部經set function來傳入你要引用的class object。除非你的class是作為Factory Pattern(工商模式)生產某些object,不然你就不會再有new字眼。 在為自己class編寫test case時,就會可以模擬被『引用』Object的行為。這個object在傳統上可以使用oop中的interface類型來達到模擬又不會影響到原結構的做法。實在不想做interface,java還可以用mackito 這個libraray來硬改Object的行為。 同理,自己class要『引用』一些外部資源,那些設定資源的config,都應該要set function傳入。這樣你在test case中才能起一個臨時的模擬外部資源。 在不使用framework的情況,要全數去自行模擬,當然很痛苦,但至少你可以做一些很簡單的測試。 在使用framework的情況下,還有些教學都是教你mockito繼續模疑。但這會是很痛苦的,因為這樣叫做unit test,單元測試,你要模擬所有東西。在折衷的情況下,應該底層元件做unit test,但上層的元件就做integration test,整合測試。 在做integration test時,就差不多等同使用framework行起部份或必要的資源。而那些必要資源,可能指是的database service, network service。我們可以在test case中設立不同的config,從而把framework指向一些備用資源。 Database好貴,腦細不會付錢set up多一套,自己電腦不夠強,也不能跑起多個開發用Database。好在還有h2 database可以幫你,它是memory可以操作的。只要你的framework支緩就好。在初次使用Framework時,你總會覺得為何Database層要設得這些抽像,其實為的就是讓你可以隨時換Database。不論做測試還是做移植,都會少很多問題。 模擬Network service還是沒有銀彈,要麼就mockito硬改行為,要麼就是提供一套測試用service。筆者曾經為模擬別人的Network Http API,也花了相當時間自己建立dummy server,提供模擬效果。無論dummy的效果有多假,有多局限,例如if id == 1,always return true,也是有一定價值。當你做source code refactoring (重構),又或是做framework升級時,還是讓你可以安心一點。

夫妻一定會生兒女嗎?
宗教玄學
熊神進・2023-08-13

熊老師(玄學信箱主持人,已經回復17000封信) 讀者RUBBLR 來信: 熊師父,您好。 我是您的忠實讀者,在我中學三年級的時候,我開始收聽您在電臺的風水節目,您講解易經很簡明,我的哥哥也贊這位師傅了得。 今天我長大了,是一位二女之母,您當年叫大家建立佛化智慧家庭,可是我的丈夫不相信這些,他說孩子只是一條頑皮的精蟲,不是來什麼報恩取債,他還叫我不要迷信,可是孩子長大的過程,她們發育很好,大女兒才16歲已偷偷跟男友混上床,我很擔心,我做了很多思想工作, 當時她是聽的,但是過了一些時間,她們又胡混起來,我很難過,不知道如何做人娘親。 ……………………………………(牽涉個人隱私內容,己刪除) 我想問問我的女兒是不是來取債?為什麼有些人家的子女真的很乖,是不是真的前生註定今生沒法改? 熊老師回答: 讀了妳的來信, 謝謝信任,我是這樣想,姑勿論孩子來你家是還債又或取債,妳身為她們母親,妳就要把這次「因緣」了結。 《三世書》有很多篇幅說及「十二姻緣」跟男女的作業,作是「因」,業是「果」,我們因為「無明」才有一切的苦果。 子女要跟你有緣,他/她會投胎在妳肚子裡,要是跟妳沒有緣,他/她即使來了,也是找妳麻煩。 我在某次「婚前輔導班」子裡,用《三世書》給大家講幾種因緣: 報恩 報怨 討債 還債。 看了妳2055字的詳細描述,我根據妳的大女兒的八字,查了《三世書》,她是符合第三種條件,但請妳不要過份敏感,我會為你們找個平衡點。 玄學家說的好女兒、孝順女,其實是過去世修來的善因,至於說討債的,就是父母過去欠他/她的(情、財、命),他/她今生來討債。如果欠得多,你們跟他/她爭吵連連,他/她給你倆帶來麻煩,你很生氣。如果欠得少,你們緣份薄弱,未上大運前他/她已經走了,這就是債務討清。 每次當我看墳墓風水的時候,我都會「入定」尋找這位亡者跟下一代的恩怨關係,過去世你跟她有債務,這一世遇到,她來做你女兒,將來長大了,做一些討債的事情令妳煩惱,真是活該。 母親懷孕,是神識來投胎。神識又從何來,筆者跟你說,是從「無明」來,你沒有「無明」妄動,就沒有「行」為造作,沒有行為造業就沒有造胎之「識」, 沒有造胎之「識」, 就沒有現生胚胎之「色身」,你既然動了「色身」, 讓男人在妳的身上冒犯,妳就要承擔這次「無明」。 家庭是共業,妳的丈夫跟妳同住屋簷下,他是「無明」, 沒有做好丈夫的建立佛化智慧家庭責任,大家在人道上行「十二姻緣」,從生至老,沒有好好學佛。 妳欠了女兒的債,這件因果早點知道,早點建立佛化智慧家庭,把這些債務化解,這是最善、最圓滿的方法。我們受到儒、佛的聖賢開示,新一代的男女都明白投胎不是偶然的事件,它與過去生中有密切的關係。 從八字結構學分析,妳的「食神」和「傷官」星是妳的忌神,那麼妳跟二位女兒都有先天的緣薄。我知道,妳還是很愛她,這是妳的大運還未衝子女星, 當48歲之後, 妳的辛子大運跟時柱相沖,她會因為個人行為而入獄,我亦很難過。 今天說什麼也沒意思,我認為父母跟子女的四種關係要牢記在心,無論是報恩、報怨、討債、還債,我們都要彼此尊重,不要因為自己是父母就可以欺淩子女。人與人如此,父母與子女也是,如果大家站在對立面,我們就是「無明」,「十二姻緣」就會加深我們的痛苦。

澳門教育家陳康妮:AI技術與教育會碰撞出奇妙的火花
文化創意
陳康妮・2021-05-22

【作者簡介】 陳康妮 Miss Connie 澳門科技大學講師 澳州墨爾本大學主修高等教育管理學 澳門高等教育管理學專家(Digital Educator) 澳門培訓師 (Digital Trainer) 澳門教育專欄作家 (Digital Writer ) 全球職涯發展師 從事高等教育管理培訓工作十七年 隨著科技不斷發展,教育教學模式也在不斷更新,人工智能進入大家的視野,對傳統的教育教學的方式產生了影響。我們不能否認科技帶來的教育教學模式的全新改變,所以我想針對澳門AI教育談談我的看法。 首先,我覺得AI教育推動了教育教學模式向個性化的方向發展。由於課堂的課程時間有限、教育教學資源有限、師資力量有限以及學生的學習能力參差不齊,傳統的教育教學模式存在侷限性,可能一堂課結束後,基礎好的同學覺得有很大收穫,而基礎較差的同學一頭霧水,長此以往,學生的學習情況就會有很大的不同,成績更會有很大的差異,學得明白的學生會更加喜歡學習,而總是學不懂的學生會自暴自棄,最後放棄學習。我認為利用人工智能技術可以在很大程度上彌補這些缺失,因為人工智能可以充分地利用大數據去了解每一位學生的學習情況、學習進度和個人的學習習慣進而針對不同的學生制定出不同的學習計劃,讓學生可以更有針對性地學習,知道自己擅長與不擅長的地方,提高學生的學習效率。也可以幫助教師瞭解學生的學習情況,在接下來的日子中不斷更進教學方式。 其次,人工智能是一種效率工具,在提供素質教育的過程中,我們可以利用人工智能來降低練習和反饋部份的成本並提升效率。人工智能可以利用大數據總結學生的錯題和知識點薄弱的地方,避免學生總是在掌握得比較好的地方一邊又一遍地看,而一直忽視掌握得不好的地方。可能有些學生一直以來都知道自己的學習薄弱點在哪裡,但是出於不敢面對問題的心理,而不願攻克這些難點,導致學習成績始終無法提升。通過人工智能,家長和老師也能夠掌握學生真實的學習情況,進而幫助學生。 再者,人工智能與教育的結合也是一種理性與感性,科學與藝術的結合。教師作為教育教學的主體,不僅需要教授科學知識也要傳遞一種情感教育,幫助學生們樹立好的三觀,幫助他們更好地面對接下來的人生。而人工智能可以幫助學生們在學習中進一步掌握知識,將更多的理性邏輯投入到教育中來。總之,根據澳門的教育情況來看,AI技術與教育一定會碰撞出許多奇妙的火花。