engtw / english-for-programmers Goto Github PK
View Code? Open in Web Editor NEW《程式英文》:用英文提昇程式可讀性
《程式英文》:用英文提昇程式可讀性
我覺得在大多數的情況下
count 與 quantity 就好了
原因是因為
既然是變數
則其上層勢必還有方法 類別 甚至 namespace
一般來說 在 SRP之下
方法中有滿高機率
是不需要額外宣告變數的
即使要宣告 通常也是屬於該方法所定義的類別名稱相關
或是方法名稱相關
要用到兩種count 的方法機率極低
此時再追加名稱即可
或是 可能已經違反SRP的情境
仔細想一下 是否真的很長在同一個方法中使用兩種count
至少已我SRP的這幾年中幾乎沒發生過
十分同意,架構規劃得好的話,程式碼上下文脈絡(方法/類別/namespace)可以消除語意模糊(ambiguity)之處。
如題,單純好奇 😅 <--某日靈光一閃,發現自己分不出來
謝謝 orz
同時我也在網路上發現有趣的題目:
https://forum.wordreference.com/threads/diffrences-between-period-and-duration.1703198/
網友解說:(英文力不足看懂 orz)
a length of time 一段時間,時期
in school, a division of time in the day when a subject is taught 課時,學時,一節(課
a fixed time during the life of a person or in history 人一生中或歷史上的)時期;階段
the length of time that something lasts 持續時間
PTT的文看起來是
markdown
但是PTT不支援阿!!
還不如直接放在github上
https://www.facebook.com/m4n14c.tw/posts/3362914743775576
我覺得 detach 和 disconnect 算好分
可以看 attach 和 connect 配什麼字
這兩種差蠻多的
原題目:「消除、刪除(remove, delete, erase, cancel, dismiss)該用哪個字?」
原題出處:
https://www.ptt.cc/bbs/Soft_Job/M.1594363672.A.7D0.html
→ yyc1217: remove delete erase cancel dismiss
https://www.ptt.cc/bbs/Soft_Job/M.1594363672.A.7D0.html
推 vi000246: 我喜歡台式英文 bulletWeight remainLife
推 goldflower: 看過中國人用拼音寫扣 jin_jia_ki_si
推 gasbomb: 上一份工作看到的 氣死https://i.imgur.com/x9GmljV.jpg
→ OrzOGC: 用拼音真的...還有日文拼音的...冏...
完全能理解,解決問題優先。
語言能做到優雅當然是好,但最重要的功能還是溝通(人與人的溝通、人與機器的溝通)。
自己的認知只到: now 是副詞,而 present 和 current 都可以當形容詞。
查資料的時候,發現 stackoverflow 有人曾經提過這樣的問題:
When should DateTime.now.utc
vs. Time.current.utc
be used in Rails?
或許就後端而言,now 與 current 之間有微妙的重疊?
雖然也有 Google 到一些用法像是 current selling price of something、current exchange rate,但不知道為何不能用 present ?
我想知道更多關於 now, current, present 的區別,先感謝大大(們)。
鄉民提供的題目
https://www.ptt.cc/bbs/Soft_Job/M.1599191750.A.773.html
→ CoNsTaR: 也可以講一下 has, with, is, at... 也可以命名狀態變數 09/05 04:46
https://www.facebook.com/media/set/?set=a.2586039114979737&type=3&comment_id=2586400861610229
延伸的問題是,像是我這種英文不好的人 😅,遇到不會的 中翻英 狀況,通常以 google / wiki 解決,但 (貌似 😆) 有三種可行方案,要怎麼選比較好?多找幾個網頁嗎?
我也不知道有沒有更好的方法 😅
有些語意、語境上的東西,是字面、書面資料比較難達傳、查詢的。而針對程式設計中的英文語意資料似乎更是稀少。
我希望我現在在做的整理工作能幫上你的忙;你愈是提問題,對我的幫助就愈大,我整理出來的資料就愈完整 👍
哪種方式比較好?
不知道能不能用 validation vs verification 來學差異?
可以的話
According to the IEEE Standard Glossary of Software Engineering Terminology, verification is defines as "The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase." Validation, on the other hand, is defined as "The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements."
例如說
什麼時候該用哪個字?該怎麼用?
鄉民提供的題目
https://www.ptt.cc/bbs/Soft_Job/M.1599191750.A.773.html
→ CoNsTaR: 也可以講一下 has, with, is, at... 也可以命名狀態變數 09/05 04:46
想到了幾個例子:
Dictionary<TKey,TValue>.ContainsKey(TKey)
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2.containskey?view=netcore-3.1String.IsNullOrEmpty(String)
https://docs.microsoft.com/en-us/dotnet/api/system.string.isnullorempty?view=netcore-3.1HttpResponseMessage.EnsureSuccessStatusCode()
https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage.ensuresuccessstatuscode?view=netcore-3.1目前一下子能想到的相關動詞有:
https://www.ptt.cc/bbs/Soft_Job/M.1601003622.A.9E4.html
推 j5128709: 推 希望有機會介紹區域 region area seg等等 09/25 13:50
之前在 #10 (comment) 的討論:
cancel:取消某個進入排程的服務,讓其回復至草稿階段或就緒階段;另一個接近的字為 stop,停止當前服務,差異大概是 cancel 會將進度 50% 返回至 0%,stop 則停留在 50%
estimate
https://www.ptt.cc/bbs/Soft_Job/M.1594363672.A.7D0.html
→ testPtt: 基本上不用Quantity 太長
→ bheegrl: ammoQty
推 dks50217: Cnt
推 enthos: pn, an, bg, hp \ Forth(Write-only lang.) style.
推 dces4212: nr_student
推 Bencrie: nr_ 這個是 Linux kernel 的命名
完全能理解,縮寫、簡寫、更短的字、更簡潔的寫法,只要能解決問題,都是好的。
例如說
int GetShortestDistance( input )
{
... // 整理 input 及其它準備工作
var ret = _實作某最短距離遞迴演算演法_( ... );
...
}
要如何為那 _實作某最短距離遞迴演算演法_()
方法取名字?
幾個可能性:
_GetShortestDistance()
Recursively
: GetShortestDistanceRecursively()
Impl
: GetShortestDistanceImpl()
GetShortestDistance()
例如說,
population (人口) 算是哪種?
似乎 count / number / quantity 都可以用在 population 上?
其它像是
似乎會用 size 這個字?
或許集合名詞 👨👩👧👦 有它自己的規則?
Related: #2
同樣的也讓我想到argument和parameter的關係
PowerShell 動詞表推薦 split
但我想知道更多,謝謝大大 orz
https://www.facebook.com/twy30/posts/2615081322075516?comment_id=2615083622075286
如果每個命名可以附上一個情境+命名的範例,就更清楚能看出微妙的差異點
我可以提供幾個例子當疑問,然後你可以給建議或是看法,選擇哪一個比較合適,或許可以這樣試試。
例如:我要檢查某個 Product 的 instance 毛利率有沒有 > 6%.
例如我要驗證 user 的 IP 是不是合法的。
例如我要確認這是不是加購的商品。
例如我要確保訂單金額不可以< 0。
中文的用詞是我刻意隨便用,而且故意用不一樣的。
type, kind, sort, class, category, classification
在各領域又有特殊的單字,例如:
https://www.facebook.com/media/set/?set=a.2586039114979737&type=3&comment_id=2586318228285159
種類用的class還是category這個單字好呢?
https://www.facebook.com/media/set/?set=a.2586039114979737&type=3&comment_id=2586400861610229
除了數量,種類也很常遇到。例如 車種,大大會建議用 "categoryOfCars"、"typeOfCars" 或是 "carClassification" (參考維基百科標題)
目前一下子能想到的相關動詞有:
有些組合字看起來順眼、直覺,例如 accountNumber; 有些看起來則是拖泥帶水,這其中的眉角是什麼? 🤔
參考資料:
(讀者提問)
你好,我最近在處理股票資料的api,
有一個內容是我想要將資料整理成K線的形式,
我的Kbar calss中想要存「屬於今天中的第N根Kbar」,這種狀況要怎麼命名呢。
像是以一根10:00~ 10:15的15分鐘k線,8:45開盤,這個變數會存5,代表是今天的第六根K線
鄉民提供的題目
https://www.ptt.cc/bbs/Soft_Job/M.1599191750.A.773.html
→ CoNsTaR: 也可以講一下 has, with, is, at... 也可以命名狀態變數 09/05 04:46
想到幾個例子
String.StartsWith()
https://docs.microsoft.com/en-us/dotnet/api/system.string.startswith?view=netcore-3.1Convert.FromBase64String()
https://docs.microsoft.com/en-us/dotnet/api/system.convert.frombase64string?view=netcore-3.1#System_Convert_FromBase64String_System_String_Object.ToString()
https://docs.microsoft.com/en-us/dotnet/api/system.object.tostring?view=netcore-3.1什麼時候該用哪個字?該怎麼用?
https://www.facebook.com/media/set/?set=a.2586039114979737&type=3&comment_id=2586318228285159
請問能不能用books代表書本數量呢??
我會從 語意 及 實務 兩個角度來看:
"numberOfBooks" 或 "bookQuantity" 會比 "books" 更接近『書本數量』,也更不需要依賴上下文來解讀。
因為 "books" 在語意上來說比較接近「書的集合(collection)」;例如,一個「書的物件」的陣列(array),就適合以 "books" 來命名。
所以,如果是我,我會選「不使用 books 來代表書本數量,而是用 numberOfBooks 或 bookQuantity 」。
語言是溝通工具,是人(程式設計師)與機器的溝通工具,也是人(一開始的開發者)與人(後來的維護者)的溝通工具。
如果身處的環境、團隊文化已經有既存的語言習慣 (方言) ,我會使用團隊習慣的方言,優先確保團隊運行順利。
目前一下子能想到的相關動詞有:
例如說
size()
Count()
Capacity
Count()
Count
IsFixedSize
Length
LongLength
Resize()
什麼時候該用哪個字?該怎麼用?
https://www.ptt.cc/bbs/Soft_Job/M.1594363672.A.7D0.html
推 Rm: amount跑去哪了 07/10 18:09
amount 整理在「不可數名詞」的「其它格式」那段。 :)
amount 本身當主詞時,常用來描述金錢上的「總金額(total amount)」,我開了
#9 來追蹤這個題目
,謝謝 :)
如果想表達資料從哪邊取得該怎樣命名英文表較合適呢?
舉例:API回應
我會寫ApiResponse{From/IN/By/For}資料,
但也有人會寫Get資料,
但在程式維護上會不知道這資料從哪邊來的,變成要去追蹤程式。
如果要給別人
To、Send、Set
鄉民提供的題目
https://www.ptt.cc/bbs/Soft_Job/M.1599191750.A.773.html
推 CoNsTaR: context, env: 環境狀態 09/05 04:46
Thread.CurrentContext
https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.currentcontext?view=netframework-4.8System.Environment
https://docs.microsoft.com/en-us/dotnet/api/system.environment?view=netframework-4.8在電商裡面,有些商品會在細分成具有不同的子屬性,例如: iPhone X 可以有
不同顏色的 iPhone X 對 iPhone X 來說就是屬於它的變體, 在命名上, 不太確定用哪一個單字好
相關字
讀者提問: "last week" 與 "past week" 有什麼不同?
我一下能想到的:
https://www.ptt.cc/bbs/Soft_Job/M.1601003622.A.9E4.html
推 vani1995: 推 不過對detach跟separate的差異依然感到困惑 09/26 15:58
原題出處:
https://www.facebook.com/twy30/posts/2597608983822750?comment_id=2597770413806607
如果遇到「次數」這個詞,可以用「times」命名嗎??
很有趣的問題 🤔
我覺得 "times" 是個能接受的選擇。
如果能知道上下文情景,或許有其它字可以選,例如:
- occurrenceCount 發生次數
- repetitionCount 重覆次數
- hitCount 「命中 🎯」次數 ← 可以是字面上、物理上的「命中」,也可以是抽象上的,例如,「搜尋引擎關鍵字」的「命中」次數。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.