Да, про ссылки/значения — холивар может быть вечным. Вот, например, есть у вас объекты типа «монитор», и у них есть свойство «разрешение». Это свойство состоит из двух полей: ширина, высота. Вопрос: какого типа должно быть свойство «разрешение»? Класс или структура? Должно ли оно передаваться по ссылке или по значению. И если у меня есть два монитора с одинаковым разрешением, то меняя разрешение на одном из них ожидаю ли я, что оно изменится и на втором? :)
Про Мокито вы невнимательно прочитали. Речь о невозможности замокать именно final-класс, а не интерфейс. И в этом и преимущество Свифта: можно даже final-класс подписать на свой протокол (интерфейс) и мокать уже протокол (интерфейс). Главное, чтоб в протоколе (интерфейсе) сигнатуры методов совпадали с тем, что объявлено в final-классе.
Именно — передача по ссылке/значению очень субъективно. Лично на мой взгляд, передача по ссылке по-умолчанию на порядок удобнее и логичнее. Особенно если мои дата-классы иммутабельные. А если надо скопировать, то есть метод `copy` из коробки. Конечно бывают кейзы, когда хотелось бы иметь value-типы и в жвм возможно их скоро завезут, но таких случаев значительно меньше, чем те, что покрываются обычными дата-классами.
Вы можете создать свой протокол и расширение для класса, чтоб соответствовать этому протоколу.
Да это приятная фича языка поддерживаемая платформой (в отличии от жвм), только примеры про неё ничего не говорят.
Это может быть сложно даже с Mockito
Серьезно? Если у вас есть интерфейс, нет никакой проблемы замокировать его. С файналами не так всё просто конечно, но пример совершенно это не показывает.
Они отличаются только названием и, конечно же, sealed-класс передается по ссылке, а перечисление в Swift — по значению.
Сначала опять про ссылки и значения. Для перечислений нет никакой разницы, передавать адрес константы или её номер. А для sealed-классов, та же дилемма, что и в первом пункте. И да, различий нет уж и много, но они есть.
Когда я прошу прислать мне публичный ключ для выдачи доступа по SSH, мне в половине случаев приходит по почте и приватный. И чем дальше тем проблема острее, так как инфраструктура непрерывно усложняется.
По выходным человек может заниматься чем-то, отличным от программирования, например. Не понимаю, почему люди считают, что программист по умолчанию должен выкладывать хоть что-то в опенсорс (своё любого размера или контрибьютить в чужое).
Уже второй раз за сегодня читаю мысль о том что создать репозитарий для обучения на github это что-то вроде преступления. Репозитарий на github при оценке сотрудника вполне заслуживает внимания как один из факторов т.к. 1) это реальный код 2) это история коммитов.
Странная статья… прежде всего наличие реп на гит(хаб|лаб)|битбакет говорит о том что чел хотябы знает что такое гит. Во-вторых — можно посмотреть его код. Если есть свои репо которые развиваются, это +, есть PR, еще +. Количество фолловеров и даже звездочек действительно не самый показательный критерий, можно просто вести репу типа awesome_xxx_list и нахайпить звёзд, можно зашарить какой-нить финтиперистый патч для драйвера специфической штуки, который нужен паре десятков человек из специфической отрасли.
найс, я оказывается вхожу в топ 0,15%, но с поиском работы это никак не помогло, кажется только один раз хедхантер заинтересовался, что у меня коммиты на гитхаб каждый день
Статья переводная ссылается на две статьи, обе довольно старые. С тех пор (с 2013 года) много воды утекло, в частности, появилась возможность прикреплять выбранные репозитарии (до 6 штук).
Я бы в резюме явно написал «контрибутил в такие-то и такие-то проекты, список моих коммитов в этих проектах вот по ссылке». Разумеется, выбрав только наиболее значительные и релевантные планируемому месту работы, чтобы сэкономить время потенциальному работодателю.
Просто спросить кандидата. Показать, чем он занимался, есть ли какие-нибудь проекты, которые можно посмотреть, спросить о достижениях — он сам все расскажет. Меня, во всяком случае, спрашивали.
Нанимая людей, смотрел профили всех кандидатов (если они были предоставлены). Если ЯП незнаком, пытался понять, что программа делает и какую задачу она решает. Это было неплохим подспорьем, чтобы завязать беседу.
Сам предоставляю профиль, чтобы показать, какими технологиями и на каком (примерно) уровне владею, но в общем-то уже свыкся с мыслью, что это лишь пункт в чек-листе (наличие непустого профиля на GH — есть, высшее — есть, опыт работы — есть...) и не более того.
Но да, большинство из того, что лично у меня выложено не имеет никакого отношения к моей работе (разве что к фрилансу), а текущая работа хоть и без NDA, зато с передачей смежных прав компании и ком.тайной (хотя где не указано, что это ком.тайна, значит это не ком.тайна). Предыдущая работа тоже не позволяла что-либо выкладывать на GH — другой стек, бинарные форматы, никакой версионности, в общем страшный сон и малопопулярный язык, а код прибит гвоздями к модели данных, без которой он представляет мало смысла и практически 0 ценности.
Согласен, что это скорее исключение, когда изучают твой профиль на github. Но есть автоматизированные HR системы типа amazinghiring и они раздражают. Делаешь крупный pull request и к тебе в почтовый ящик начинают валиться десятки писем спама. Причем проекты такие, что даже если бы был безработный не пошел бы туда.
Еще показателен социальный эксперимент мой профиль имеет всего 16 followers за 5 лет хотя у меня много проектов и являюсь контрибьютором даже в spring/spring-boot, а профиль моей девушки собрал 3 подписчика за неделю при минимальном вкладе.
А этот самый «весомый PR» в профиле довольно непросто найти. Только если специально заморочиться, но в статье же прямо указано, что профили и так никто не смотрит.
Я вот сам смотрю только в том случае, если у меня возникают вопросы к резюме кандидата.
Да, про ссылки/значения — холивар может быть вечным. Вот, например, есть у вас объекты типа «монитор», и у них есть свойство «разрешение». Это свойство состоит из двух полей: ширина, высота. Вопрос: какого типа должно быть свойство «разрешение»? Класс или структура? Должно ли оно передаваться по ссылке или по значению. И если у меня есть два монитора с одинаковым разрешением, то меняя разрешение на одном из них ожидаю ли я, что оно изменится и на втором? :)
Про Мокито вы невнимательно прочитали. Речь о невозможности замокать именно final-класс, а не интерфейс. И в этом и преимущество Свифта: можно даже final-класс подписать на свой протокол (интерфейс) и мокать уже протокол (интерфейс). Главное, чтоб в протоколе (интерфейсе) сигнатуры методов совпадали с тем, что объявлено в final-классе.
Именно — передача по ссылке/значению очень субъективно. Лично на мой взгляд, передача по ссылке по-умолчанию на порядок удобнее и логичнее. Особенно если мои дата-классы иммутабельные. А если надо скопировать, то есть метод `copy` из коробки. Конечно бывают кейзы, когда хотелось бы иметь value-типы и в жвм возможно их скоро завезут, но таких случаев значительно меньше, чем те, что покрываются обычными дата-классами.
Да это приятная фича языка поддерживаемая платформой (в отличии от жвм), только примеры про неё ничего не говорят.
Серьезно? Если у вас есть интерфейс, нет никакой проблемы замокировать его. С файналами не так всё просто конечно, но пример совершенно это не показывает.
Сначала опять про ссылки и значения. Для перечислений нет никакой разницы, передавать адрес константы или её номер. А для sealed-классов, та же дилемма, что и в первом пункте. И да, различий нет уж и много, но они есть.
Мне тоже не понятен этот момент. Там же чётко написано ограничение
Я так же могу в котлин написать:
В котлине автоподсказка мусором не забивается. Может, виновата ide, а не язык?
То есть это не особенность языка, и ничего там не будет доступно, а просто просчёт в системе автодополнения, которая не была готова к таким фокусам(?)
Когда я прошу прислать мне публичный ключ для выдачи доступа по SSH, мне в половине случаев приходит по почте и приватный. И чем дальше тем проблема острее, так как инфраструктура непрерывно усложняется.
Странная статья… прежде всего наличие реп на гит(хаб|лаб)|битбакет говорит о том что чел хотябы знает что такое гит. Во-вторых — можно посмотреть его код. Если есть свои репо которые развиваются, это +, есть PR, еще +. Количество фолловеров и даже звездочек действительно не самый показательный критерий, можно просто вести репу типа awesome_xxx_list и нахайпить звёзд, можно зашарить какой-нить финтиперистый патч для драйвера специфической штуки, который нужен паре десятков человек из специфической отрасли.
Сам предоставляю профиль, чтобы показать, какими технологиями и на каком (примерно) уровне владею, но в общем-то уже свыкся с мыслью, что это лишь пункт в чек-листе (наличие непустого профиля на GH — есть, высшее — есть, опыт работы — есть...) и не более того.
Но да, большинство из того, что лично у меня выложено не имеет никакого отношения к моей работе (разве что к фрилансу), а текущая работа хоть и без NDA, зато с передачей смежных прав компании и ком.тайной (хотя где не указано, что это ком.тайна, значит это не ком.тайна). Предыдущая работа тоже не позволяла что-либо выкладывать на GH — другой стек, бинарные форматы, никакой версионности, в общем страшный сон и малопопулярный язык, а код прибит гвоздями к модели данных, без которой он представляет мало смысла и практически 0 ценности.
Еще показателен социальный эксперимент мой профиль имеет всего 16 followers за 5 лет хотя у меня много проектов и являюсь контрибьютором даже в spring/spring-boot, а профиль моей девушки собрал 3 подписчика за неделю при минимальном вкладе.
Я вот сам смотрю только в том случае, если у меня возникают вопросы к резюме кандидата.