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

    +114

    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
    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, 24 Августа 2010

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

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

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

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

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

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