Enum引发的血案,反思



Enum引发的血案,反思

一位同事做新feature时加了上面红色的两个,由于存report的时候对于这个Enum只是简单的转成int存起来,大家都知道Enum默认是从0开始,按顺序来,原先存的第6个是PeergroupPercentile,report里存的就是数字5,新加了两个在上面后,数字5就解析成PeergroupRank了。 其实项目里大部分代码对Enum是有所防范的,如: 1 public enum DisplayBenchmark 2 { 3 None, 4 Benchmark1, 5 Benchmark2, 6 CategoryAverage, 7 CalcBenchmarkId, 8 CalcBenchmarkType, 9 CalcBenchmarkCdp, 10 } 11 12 public static class DisplayBenchmarkCode 13 { 14 const string BENCHMARK1 = "bm1"; 15 const string BENCHMARK2 = "bm2"; 16 const string CATEGORY = "ca"; 17 18 public static DisplayBenchmark Parse(string code) 19 { 20 switch (code) 21 { 22 case BENCHMARK1: 23 return DisplayBenchmark.Benchmark1; 24 case BENCHMARK2: 25 return DisplayBenchmark.Benchmark2; 26 case CATEGORY: 27 return DisplayBenchmark.CategoryAverage; 28 } 29 return DisplayBenchmark.Benchmark1; 30 } 31 32 public static string Convert(this DisplayBenchmark type) 33 { 34 switch (type) 35 { 36 case DisplayBenchmark.Benchmark1: 37 return BENCHMARK1; 38 case DisplayBenchmark.Benchmark2:

Read full article from Enum引发的血案,反思


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts