1. C# / Говнокод #18972

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    private readonly Dictionary<BuildType, string> mProductBuildPrefix = new Dictionary<BuildType, string>
        {
            { BuildType.iOS, "appstore" },
            { BuildType.iOSHD, "appstore" },
            { BuildType.iOS_INT, "appstore" },
            { BuildType.iOS_INT_HD, "appstore" },
            { BuildType.Alpha, "appstore" },
            { BuildType.Develop, "appstore" },
            { BuildType.Android, "appstore" },
            { BuildType.Android_INT, "appstore" },
            { BuildType.Web, "appstore" },
            { BuildType.Amazon, "appstore" }
        };

    > не понимаю смысловой нагрузки в этом...

    Запостил: strax, 05 Ноября 2015

    Комментарии (34) RSS

    • private string getProductBuildPrefix(BuildType type)
      {
          return "appstore";
      }

      Я починил!
      Ответить
      • Нифига. А как же not found для неизвестных типов сборки?
        Ответить
        • private string getProductBuildPrefix(BuildType type)
          {
              Random rand = new Random();
              if (rand.Next(5) == 0)
                  throw new System.Collections.Generic.KeyNotFoundException;
              return "appstore";
          }


          И таак сойдет!
          Ответить
          • Вы, случайно, не хотите поработать в нашей компании?
            Ответить
            • > > rand.Next()

              > Вы, случайно [..]

              Да, но только случайно.
              Ответить
            • так вот откуда пошло про Middle PHP Developer
              Ответить
              • Вам с буратинхо не спится в пол пятого утра? Какие жайворонки )))
                Ответить
                • Какой пол пятого утра. уже 5 вечера.
                  Ответить
                • javaронки встают рано, т.к. на написание 100500 геттеров, сеттеров и т.д. уходит прилично времени.
                  Ответить
                  • А есть же лобок:
                    https://projectlombok.org/features/Data
                    Ответить
                    • Какой там реальный пример красивый, однако.
                      Ответить
                      • Больше всего я люблю Ломбок за Настоящий, Труёвый java-подход.
                        Дело в том, что они нашли N лет назад в конпеляторе дырень. Оказалось, что можно во время компиляции модифицировать AST, только это не фича, это реально дыра.

                        ...теперь эту дыру уже никто из компилятора не выкинет.
                        Ответить
                        • рази дырень? как же AspectJ тогда работал?
                          Ответить
                          • через агента, инструментируя байткод?
                            Ответить
                            • я думал, лобок так же делает
                              ну вот вижу, что ошибался

                              велик язык, где для таких простых вещей нужно пилить отдельную тулу
                              Ответить
                          • https://stackoverflow.com/a/6108573/2908793

                            ломбок запускается как annotation processor, но прикол в том, что annotation processor не предполагает изменение существующего кода, только генерацию нового
                            Ответить
                  • Джа-Воронок

                    Чёрный ЗИС, из которого выходит Боб Марли
                    Ответить
                • В начале недели поспали а потом нет
                  Ответить
          • Не нужно создавать рендом каждый раз.
            Ответить
            • А что будет если?
              Ответить
              • The default seed value is derived from the system clock and has finite resolution.As a result, different Random objects that are created in close succession by a call to the default constructor will have identical default seed values and, therefore, will produce identical sets of random numbers.
                Ответить
                • А если SystemRandom (криптостойкий)?
                  Ответить
                  • Всяко можно. Он по-любому должен сидиться от чего-то высокоэнтропийного. Иначе какой он нахуй криптостойкий?
                    Ответить
                    • Если слишком часто создавать - он не исчерпается? Если да - что тогда?
                      Ответить
                      • Да хер знает, как он у них там устроен. В худшем случае подвиснет как чтение из пингвиньего /dev/random, пока энтропия не накопится. Но, скорее всего, там аналог /dev/urandom, из которого биты можно без проблем доставать в любых количествах.
                        Ответить
                        • да как бы вот он. [color= blue]http://referencesource.microsoft.com/#mscorlib/system/random.cs,62cd8ffb36191d74[/color]рандом, такой рандом http://ideone.com/e4dh2v
                          Ответить
                          • Дык это обычный рендом, из доки по которому я выше цитату кидал " will have identical default seed values". А 3_14dar говорил про криптостойкий (я х.з., как он у вас в шарпе называется).
                            Ответить
                            • System.Security.Cryptography.RNGCryptoSe rviceProvider

                              или типа того
                              Ответить
                              • да, именно так) но это все обертка вокруг криптоапи виндового : там энтропия рождается из MAC, UUID томов дисков, дерганья мышью итд.

                                Врочем, как и в /dev/random
                                Ответить
                          • а куда делся Lokich?
                            Ответить
          • Артем Александрович, это вы?
            Ответить
      • У тебя кодстайл неправильный

        А вообще кошерно делать так
        [Flags]
            enum BuildType
            {
                Ios = 1,
                Alpha = 2,
                Beta = 4,
                Gamma = 8
            }
        
            class Class1
            {
                private const BuildType AllowedTypes = BuildType.Gamma | BuildType.Beta | BuildType.Ios;
        
                private static string GetProductBuildPrefix(BuildType type)
                {
                    return (AllowedTypes.HasFlag(type)) ? "appstore" : null;
                }
        
        
                public static void Main(string[] args)
                {
                    Console.WriteLine(GetProductBuildPrefix(BuildType.Beta)); //AppStore
                    Console.WriteLine(GetProductBuildPrefix(BuildType.Alpha)); //null
                }
            }
        Ответить
    • смысл:
      mProductBuildPrefix.Add(BuildType.BolgenOS, "roskomnadzor");
      Ответить

    Добавить комментарий