这绝对是主观的,但我想尽量避免它变成争论。我认为如果人们恰当地对待它,这将是一个有趣的问题。
这个问题的想法来自于我对“你最讨厌的语言的哪五件事?”问题的回答。我认为c#中的类在默认情况下应该是密封的——我不会把我的理由放在这个问题上,但我可能会写一个更完整的解释来回答这个问题。我对评论中的讨论热度感到惊讶(目前有25条评论)。
那么,你有什么有争议的观点?我宁愿避免那些基于相对较少的基础而导致相当宗教的事情(例如,大括号放置),但例如可能包括“单元测试实际上并没有多大帮助”或“公共字段确实是可以的”之类的事情。重要的是(至少对我来说)你的观点背后是有理由的。
请提出你的观点和理由——我鼓励人们投票给那些有充分论证和有趣的观点,不管你是否恰好同意这些观点。
估计是给我的,不是给你的
作为开发部门经理,评估对我来说是一个有用的工具,可以用来计划我的团队正在做什么。
它们不是在特定日期交付特性的承诺,也不是驱使团队更加努力工作的棍子。
恕我直言,如果你强迫开发者做出估算,你就能得到最安全的数字。
例如:
我认为一个专题大概需要5天左右的时间。有很小的可能性出现问题,需要30天。
如果评估只是为了计划,那么我们都将工作到5天,并考虑到出现问题的小概率。
然而,如果满足这个估计是交付承诺的要求,你认为会给出什么样的估计?
如果开发人员的奖金或工作保障取决于是否达到估算值,你认为他们给出的是最准确的猜测还是他们最确定会达到的估计?
我的这一观点与其他管理层存在争议,并被解释为我试图钻出合适的目标,或者我试图掩盖糟糕的表现。每次都很难说服别人,但我已经习惯了。
That (at least during initial design), every Database Table (well, almost every one) should be clearly defined to contain some clearly understanable business entity or system-level domain abstraction, and that whether or not you use it as a a primary key and as Foreign Keys in other dependant tables, some column (attribute) or subset of the table attributes should be clearly defined to represent a unique key for that table (entity/abstraction). This is the only way to ensure that the overall table structure represents a logically consistent representation of the complete system data structure, without overlap or misunbderstood flattening. I am a firm believeer in using non-meaningful surrogate keys for Pks and Fks and join functionality, (for performance, ease of use, and other reasons), but I beleive the tendency in this direction has taken the database community too far away from the original Cobb principles, and we jhave lost much of the benefits (of database consistency) that natural keys provided.
那么为什么不两者都用呢?