本文章是由機器翻譯。

不吐不快

不成文規則

David Platt

David Platt一般情況下,軟體行業中的,像是現代社會遵循許多書面規則,和它積累更多所有的時間。 但老年人和 wiserless 傻更加憤世嫉俗我得到,我看到的越多社會和軟體行業是實際上更受不成文的規則而不是寫的。

書面的規則所說:"你不應該做 X!"不成文的規定說,"是的你可以做 X,至少在某些情況下。 你有點必須這麼做才能完成這項工作。正如作家世界希望它的原位址了 ; 後者作為它實際上是。

您覺得複雜嗎? 沒問題。 細緻入微的嗎? 確實是這樣。 麻煩嗎? 經常。 但觀察下一個時間航空公司飛行員或護士聯盟階段章工作行動而不是一次罷工。 無潤滑的這些不成文的規則,他們的工作場所快速磨僵局陷入停頓。 並因此會社會,如果我們不按照不成文的規則,而不是書面的。

考慮Michael皮內達,紐約洋基隊投手,他在 4 月中收到了他的手指向更好的抓地力球上使用松焦油 10 場禁賽。 書面的規則說捕蟲籠不能使用松焦油或任何其他物質。 不成文的規定說有點松焦油在寒冷的天氣,是確定,只要你是謹慎。 皮內達暫停了不這麼多使用松焦油,但這樣做它如此公然裁判不得不注意到 (你可以讀到它在 foxs.pt/1i3R3fz)。

舉一個例子從我們的行業,物件導向的程式師有長宣佈成為禁忌的全域變數。 你應該被槍斃,甚至思考它們,正確嗎? 另一方面,什麼是靜態的除了全球類打扮的包裝使政治上正確嗎? 程式師經常把它們掛從物件類命名為"全域變數"。當現在的東西在程式中,只能有一個實例,它是一個整數時,多少層的抽象和管理人員和服務做你想要我把它包起來上,讓你感覺到良性? 作為你的血壓猛漲從閱讀的最後一句,我會重組我的問題:多少層你是願意付錢給我,當你可以使用這筆錢的東西? 您的支票是你的答案。 它是從你第一反應的兩個句子前可能不同。

有時的書面的規則僅包含寫下來的預先存在的不成文規則。 做成一個字串,例如檔的名稱,直接到您的代碼通常是一個糟糕的主意 ; 但有時你必須這樣做。 給那建設一個良性探空標籤,現在你不好。

極客說:"我們正在關注的井已知名稱設計模式"。 "好,好,"老闆說,非技術性。 "我很高興你使用設計模式而不我聽說過那牛仔編碼東西。

夥計們,你是在一個字串中的硬聯線。 做需要的時候,與你的眼睛敞開的當你已經仔細考慮過了,你知道利大於弊。 舒緩的謊言,你就會回來,修復它,總有一天,當你得到的時間你不安的感覺。 但不要認為你在改變它所做的穿上它的名字。 一個 bug 傷害和激怒你沒少當你呼喚它的問題的使用者 (見 msdn.microsoft.com/magazine/ff955613)。

製圖課程通過這些雷區,知道什麼時候遵循書面的規則,當忽略它們而不成文的是什麼軟體工程的意義。 這項業務有幾個,絕對的"你不應該"規則,(雖然不滾動字幕在您的瀏覽器狀態列中的字串來接近這個水準)。 一件事總是告訴我的客戶和學生是,"你不可認為。 如果是硬,然後你也要還我來幫你想"。

我很好奇,聽你最喜歡的不成文的規則,軟體發展的 — — 或是別的,那件事。 發送給我在 dave@rollthunder.com

我敢肯定有些迂腐的怪胎現在會說因為我已經寫在這裡的一些規則,他們不再是不成文。 我回復到:你傷了我挑剔你雙曲型背頁專欄作家反對不成文的規定。 這是值得 10 場禁賽,你不覺得嗎?


David Platt 教授在哈佛大學擴展學校和公司在世界各地的.NET 程式設計。他是 11 程式設計書籍,包括"為什麼軟體吸"(艾迪生 Wesley 專業,2006 年) 和"介紹 Microsoft.NET"(微軟出版社,2002 年) 的作者。微軟在 2002 年給他起名叫軟體傳奇。 他想知道是否他應磁帶下兩個女兒的手指讓她學會了如何以八進位數數。你可以聯繫他在 rollthunder.com