воскресенье, 22 ноября 2015 г.

Core Data для iOS

http://habrahabr.ru/post/191334/

Понравились переведённые Андреем Шмигом главы из книги Михаэля Привата и Роберта Варнера "Pro Core Data for iOS"

пятница, 20 ноября 2015 г.

Плоха ли привычка выходить с помощью return из метода/функции? И про ==

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

Он объяснял это тем, что однажды код метода/функции будет модифицироваться, и тот кто будет спустя месяцы или годы добавлять что-то новое в логику, он может не придать должного внимания преждевременному возврату из функции/метода при определённом условии. Если меняется логика, то потенциально может потребоваться уточнение условий преждевременного выхода из тела метода/функции.

Автор советовал вместо того чтобы просто выходить при определённых условиях с помощью return не делать этого, а везде явно заключить всё в блоки, потому что это будет в будущем явно показывать: при таких-то условиях выполняется вот этот блок, а при таких-то условиях будет выполняться другой блок. Нигде не будет ни одного return на полпути, а только в конце метода/функции мы уже явно выдаём результат или просто выходим восвояси.

Интересно, что думают другие на этот счёт?

И ещё вспомнил один позабытый совет, который сейчас стал использовать. Автор одной книги делать не так, как принято у многих:

if (variable == CONSTANTA)
{
    // bla bla bla
}

а делать так:

if (CONSTANTA == variable)
{
    // bla bla bla
}

Потому что если по запарке напишешь не ==, а = (9 999 раз напишешь правильно, а в 10 000 раз всё-таки ошибёшься, потому что ты обычный человек, а ошибёшься в важном месте, и люди понесут серьёзные убытки из-за банальной человеческой невнимательности), то константа просто не позволит тебе сделать это физически.

четверг, 19 ноября 2015 г.

Чем мне понравился язык программирования Swift

Попробовал писать на Swift. В целом язык больше нравится, чем не нравится.


Немного ломает то, что строчки не нужно заканчивать точкой с запятой. Немного ломает то, что после if необязательно писать скобки. Впрочем я их пишу, чтобы не отвыкать от своих привычек к C++ и Objective-C.


Очень радует, что язык Swift заставляет более внимательно относиться к типам данных. То есть программист вынужден обращать внимание на совместимость типов данных что по моему представлению хотя бы немного увеличивает надёжность написанного кода.


Ещё одна интересная особенность: nil не указывает на несуществующую область памяти (как в C++ или Objective-C), он говорит о том, что переменная равна ничему. Удивило, что даже переменной типа Int? можно присвоить nil, и что самое приятное лично для меня - эта переменная не будет равна целочисленному нулю! Это очень классно, я считаю, что это уменьшает вероятность логических ошибок в коде.

Постоянные читатели