Freigeben über


«Большие» функции в коде.

?????? ?? ????????????:

?? ????? ?? ????????????????? ????? “Lepsik” ?? ???????? ? Microsoft (????):

????? - ????

1, 2. ???????????, ??????? - ??? ???????? ????????. ?????? ??????? ????? ?????? ??????? ????? ?????? ???????? ??? ??????? ?????? :)

3. ????? ?? ?????? ??????? ?????? ???? ?? ??????, ?? ????? ??????? ? ???????? ???????? ??? ?? ??????, ?.?. ? ????????? ?????? (? ?? ? ? ????????? ??????????).

??????, ??? ??? ???? ? ??????? :)

??? ?????? ? ??? ????????? ?????????. :)

? ??????? ????????? Microsoft/IBM/SONY, …. ????? ?????? ???. ? ??? ???? ?????? ? ????? ? ????? ???????. ? ???? ? ??????? ???? ???????? ?????? ?????????.

?? ???? Microsoft ?? ?????. ????????, ??? ????? ???.

??-??????, ????? ???????, «coding guidelines», - ????. ? ??? ?? ?????? ?????????? ?? ??? ????????, ??? ????? ????? ? ????. ?? ????????? ?????? ??????? ?? ??????? ???????? ??? ??????, ??? ????????????. ??????, ???????, ??? ??? ????? ??????????? ? ??????????? Microsoft Office, ?????? ???????? ?????????? ?????? ????? ????????? ????. ??????, ?? ?? ??????????? ??????????. ???????, ??????? ?? ??? ?????? ????? ????????? ???.

??-??????, ??????????? ?? ?????? ???????/?????? ????? ??? ?? ???????????????? ????????. ?????????? ????? ??????, ?? ??????? ????????????? ??????? ??????? ????? ???? ?????????. ?????? ??????? ????????????? ????, ?? ??????? ?????????????? ????????? ??????????, - ????????? ????????. ?? ????? ???? ?? ??????? ?? ??????? ???????? ????????. ?????? ??? ?? ????? ???????, ???? ? ?????? ?? ????????. ?? ??? ????? ?? ?????????? ??????????? ????, ???????????? ???????? ?? ????????, ? ???? ???????? ???-???? ?????? ?????.

?????, ??????? ????? NtGetSystemInformation ???????????? ????? ????? ??????? switch, ???????????? ?????????? ???????? ?? ????????? ??????? ?????? ???????? ?? ????. ???????????? ?? ????????????? ??? ?? ????? ????? ??????? ??????????? ??????? ?????? ?? ????????.

?? ????? ???????? ??? ???????????? ???. ?????????????? ?????????? ?? ?????? ??? ????????????? «coding guidelines». ?? ? ????? ???? ??? ????. ????? ???????, ??? ???????? ?????????? ???????? ???????? ??????? ????? ?????? ?? ?? ?????? ?????. ???? ?????? ?????? ?????????? ? ?????????? ???.

Cross-posted from blog.not-a-kernel-guy.com.

Comments

  • Anonymous
    January 01, 2003
    Это всё в теории хорошо. На практике целесообразность рефакторинга определяется по соотношению тех преимуществ, которые он даст, к количеству проблем, которые он породит. Скажем есть два случая: в первом код на на 100% покрыт тестами на все случаи жизни, а во втором - на 10%. Рефакторить код в первом случае имеет смысл только если это даст какие-то дополнительные преимущества - большую производительность или позволить добавить какую-то функциональность. Иначе, зачем огород городить - все и так оттестировано и работает. Во втором случае - код нужно сначала покрыть тестами на 100%, а затем рефакторить. Либо закрыть глаза на тесты и рефакторить без тестов, но тогда преимущества нового кода должны быть еще очевиднее.

  • Anonymous
    May 10, 2008
    Ну вот и вопрос - является ли длиннющая простыня рабочим и безопастным кодом? Если писать для нее тесты, то рефакторинг простыней становится более очевидным преимуществом - на маленьикй модуль нужен мелкий тест. Причем полное покрытие мелких модулей мелкими тестами сделать проще чем полное покрытие простыни (если простыня не линейна).