Несмотря на то, что за выходные можно освоить основы разработки под iOS, освоение ремесла займет гораздо больше времени. Тогда возникает вопрос: как вы переходите от новичка к эксперту? В этом кратком совете я расскажу вам о крошке, которая поможет вам стать великим разработчиком iOS.
1. Практика, практика, практика
Там нет ярлыков. Это то, что я хотел бы подчеркнуть, прежде чем продолжить, потому что важно избавиться от любых иллюзий, которые могут застрять в вашей голове. Вы не станете опытным разработчиком, если будете программировать только по воскресеньям с 16:00 до 17:00 … если солнце не светит и на телевидении ничего нет. Не поймите меня неправильно, это может быть весело, но это не приблизит вас к цели стать опытным разработчиком. За исключением нескольких исключений, большинству людей нужна практика — и многое из этого. Если вы не готовы тратить время, лучше пересмотреть свои цели и амбиции. Станьте великими в том, что вы любите, и время, потраченное на занятия, будет собственной наградой
2. Учитесь у других
Одна из лучших стратегий для улучшения ваших навыков и принятия лучших практик — это учиться на чужом коде. Это означает не только просмотр переполнения стека , но и, что более важно, библиотек или фрагментов кода, которые открыты другими разработчиками.
Всякий раз, когда вы погружаетесь в библиотеку, такую как AFNetworking или Magical Record , это ключ к тому, чтобы не быть перегруженным прочитанным кодом. Скорее всего, вы не понимаете каждую строку кода в этих библиотеках, но это не совсем так. Суть в том, чтобы взглянуть на исходный код с более высокого уровня и узнать как можно больше, например, соглашения об именах, лучшие практики, шаблоны проектирования и т. Д.
В дополнение к изучению кода других людей, это хороший опыт для создания собственных библиотек. Некоторое время назад я разрабатывал приложение, которое использует Core Data в качестве слоя данных. Вместо того, чтобы использовать Magical Record , я решил создать свою собственную библиотеку, исследуя Magical Record и воссоздавая нужные мне функциональные возможности. Мало того, что это привело к скудной, гибкой библиотеке, оно также многому научило меня во внутренней работе Magical Record.
3. Не копируйте и не вставляйте
Это подводит меня к другому ключевому аспекту правильного обучения: не бездумно копируйте и вставляйте код. Мы все используем фрагменты кода, которые мы находим в таких местах, как переполнение стека или форумы разработчиков Apple , но важно не бездумно копировать и вставлять код, который вы найдете в Интернете. Копируя найденный вами код, вы ничего не узнаете. Большая опасность в том, что вы не знаете, что вы только что добавили в свою базу кода. Это может привести к непредвиденному поведению, и это будет очень затруднять отладку вашего кода позже.
Время от времени может быть соблазнительно быстро использовать фрагмент кода, который, по-видимому, решает проблему, над которой вы работаете, но я настоятельно призываю отказаться от этой практики. Прочитайте код, поймите, что вы добавляете в базу кода, и, возможно, настройте решение под свои нужды.
Само собой разумеется, что это не относится к библиотекам или структурам, которые активно поддерживаются. Если вам пришлось пройти через Magical Record, прежде чем вы сможете использовать его в своем проекте … Я уверен, что вы понимаете разницу. Используйте свой здравый смысл.
4. Шаблоны
Какао и Objective-C во многом сильно отличаются от других языков программирования и сред. Это означает, что у них есть свои модели и лучшие практики. Я уверен, что вы уже знакомы с несколькими распространенными шаблонами, такими как делегирование и уведомления. Тем не менее, существует много других шаблонов, которые могут помочь вам в процессе разработки, таких как шаблоны синглтона, наблюдателя и команды. Руководство по основам какао дает вам хороший обзор наиболее распространенных моделей в какао.
5. Знай свои инструменты
Стать великим разработчиком — это не только понимание языка и основ. Это так же важно эффективно работать с инструментами, которые вы используете изо дня в день. Для разработки под iOS это означает Xcode и, возможно, другие инструменты, такие как PonyDebugger и Charles .
Если вы хотите изучить несколько дополнительных трюков, вас может заинтересовать предыдущий быстрый совет, который я написал по этой теме.
6. Будьте в курсе
Даже если вы не можете присутствовать на ежегодной конференции разработчиков Apple, WWDC, будет хорошей идеей просмотреть многочисленные видео сессий и посмотреть те, которые вызывают у вас интерес. Презентации обычно проводятся инженерами, которые работают над технологиями, описанными в этой сессии, что дает вам подробную информацию и инструкции о том, как их использовать. Это также отличный способ быстро освоиться с этими технологиями.
Есть много отличных разработчиков, которые регулярно пишут о своем ремесле, таких как Мэтт Джеммелл , Аарон Хиллегасс и Майк Эш . Вы можете найти более обширный список в предыдущем посте, который я написал для Mobiletuts +.
Бонус: учить другие языки
Я заметил, что мое общее понимание разработки программного обеспечения значительно улучшилось благодаря изучению новых языков или работе с новыми фреймворками. Преимущество этого подхода заключается в том, что вы не ограничиваете свой взгляд на язык, который вам наиболее знаком.
Недавно я погрузил свои пальцы в Ember.js и узнал, что создатели, Yehuda Katz и Tom Dale, черпали вдохновение из Cocoa. Реализация шаблона Ember.js MVC (Model-View-Controller) немного нетрадиционна для среды JavaScript, но это не удивительно, если вы знакомы с Cocoa.
Не существует «лучшего» языка для написания программного обеспечения, так как все они имеют свои плюсы и минусы. Хорошая вещь, однако, состоит в том, что они все немного (или много) отличаются, и именно эти различия делают изучение новых языков интересным и открывающим глаза. Например, Ruby стал для меня настоящим откровением с точки зрения написания СУХОГО (не повторяйте себя), удобочитаемого и чистого кода.
Вывод
Если вы не хотите тратить время на то, чтобы стать лучшим программистом, тогда вы, возможно, захотите еще раз подумать, почему вы хотели стать программистом. Однако, если вы взволнованы новой библиотекой или инструментом, который может помочь вам в разработке, у вас, вероятно, не возникнет проблем с улучшением ваших навыков с течением времени. Вам действительно нужно любить то, что вы делаете, чтобы стать хорошим в этом, и я думаю, что это особенно верно для программирования. Неважно, что люди скажут вам, вы не станете опытным разработчиком в одночасье, но я обещаю вам, что ваши навыки улучшатся, если вы продолжите учиться и биться в своем ремесле.