Си диез / Говнокод #4090 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
public class VKUrlManager
    {
        public static string API_URL = "http://api.vkontakte.ru/api.php";

        public static string WithdrawVotes(int iVotes, int iUserID)
        {
            string sTime = "timestamp=" + DateTime.Now.ToFileTimeUtc();
            string sRandom = "random=" + GE.Utils.GetRandom(int.MaxValue);

            return API_URL + "?api_id=" + DA.AppConfig.ApiId
                + "&method=secure.withdrawVotes"
                + "&v=2.0"
                + "&" + sRandom
                + "&" + sTime
                + "&uid=" + iUserID
                + "&votes=" + iVotes
                + "&sig=" + GenerateSig(new string[] 
                    { "api_id=" + DA.AppConfig.ApiId, "v=2.0", "method=secure.withdrawVotes",
                        "uid=" + iUserID, "votes=" + iVotes,
                        sTime,sRandom
                    });

        }

        public static string GenerateSig(string[] aParams)
        {
            Array.Sort(aParams);
            string s = "";
            for(var i = 0; i< aParams.Length; i++)
                s += aParams[i];
            s += DA.AppConfig.ApiSecret;
            return GE.Utils.GetMD5Hash(s);
        }
    }

главный метод во всех приложениях вконтакте, ради которого эти приложения, собственно, и пишутса!
ps:// по-моему говнокод

Запостил: nolka4 nolka4, (Updated )

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

  • опять вконтакте? ппц, и это называется лучшая соцсеть россии
    Ответить
    • Авторитарнетно заявляю: сеть говно, код не читал.
      Ну, мне форматирование строки, начиная с 10й довольно веселое. Что есще?
      Ответить
        • Если ты про сеть -- то, что лучше нет, не значит, что хорошоая))
          Ответить
          • вот это и грустно. что говно - но лучше нет.
            хотяя, как пользователю, то весьма приятно пользоваться
            Ответить
              • что-то подсказывает мне, что фейсбук внутри такое же феерическое дерьмище, как и ЖЖ.

                Популярность, к сожалению, ортогональна красивости кода
                Ответить
      • Если вызов функции (17-21 строки) не учитывать, то формирование строки вполне привычное.
        >Что есще?
        Ну, можно foreach в 29 строке сделать.
        Ответить
    • тащемто однокласники лучше, там хотя бы нет php и они взяли хороших разработчиков пару месяцев назад и условия там лучше, и юзабилист у них из яндекса.
      так что через год они порвут контакт конечно, где дуров и его дрессированные хомячки творят килограммы говнокода

      а вообще я ни в одной сети не сижу)
      Ответить
      • одноклассники в смысле юзабилити хуже (так же, как двиг всяких ЖЖ, ливинтернет и проч. - в сравнении, скажем, с тем же дайри.ру). Впрочем, недавно взялись за надпиливание, может, наконец и доведут до ума.

        а вот из зарубежных, фейсбук всем дает прикурить
        Ответить
      • >однокласники лучше, там хотя бы нет php
        у них вроде самописный jsp?
        Ответить
        • точно не скажу, могу узнать) у меня бывший коллега туда пошел джавистом.
          Но что-то подсказывает мне что шаблонизация у них -- это не главное.
          Ответить
  • Не понимаю где таких учат, хотя наверное сами растут, почему-то редко кто использует StringBuilder для формирования строк. Хотя в любой книге от МС доволько хорошо расписано, что, зачем и почему.
    Ответить
    • >string.Format видемо для ламеров.

      считайте меня кем угодно, но по-мойму format в данном случае не втему
      у меня уже в давно привычку вошло решать эту задачу мапом вместо такого говна
      + "&" + sRandom
      + "&" + sTime
      + "&uid=" + iUserID
      + "&votes=" + iVotes
      и собирать это спецметодом с локальным StringBuilder/Bufferом
      Ответить
      • Хуже того, у микрософта кажется даже был класс (в System.Web) для таких задач.
        Он генерил URL по IDictionary
        Ответить
        • >Он генерил URL по IDictionary
          мне кажется автор и о Dictionary может не знать )))

          я во все проекты подтягиваю самописный класс для всяких хитрых сборок из мапов, массивов и набора разделителей
          и неважно какая задача URLы (GET), POST-запросы, генерация js, регэксов, всяких тегов или еще на что хватит фантазии - все сводится к
          1. получил мап
          2. вызвал метод
          Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8