Pull to refresh
17
0
Владимир Бауэр @VBauer

User

Send message

from это метод трэйта std::convert::From а String реализует этот трэйт. В FQM представлении этот вызов выглядет так: <String as From<&str>>::from("hello"). Практически все типы в стандартной библиотеке так или иначе реализуют трэйт From. Например тип String еще можно получить из одиночного символа: String::from('a'). Такой подход избавляет от необходимости реализовывать методы с разными именами типа from_str_slice, from_char.

Для каждой задачи свой инструмент. Второй способ (функциональные аргументы) подразумевает что будет инициализироваться "сложный" со множеством параметров или "тяжелый" на ресурсы объект, который будет существовать на протяжении всей жизни программы или библиотеки. Тот же метод Dial упомянутый вами, обычно вызывается один раз. Также обычно функциональные аргументы используются только в Публичных методах/функциях. Если у вас внутренний апи, который вы вызываете тысячу раз, то применять там функциональные аргументы всегда плохая идея.
Кто-то выше писал что "Синтаксический сахар вроде должен уменьшать количество кода и делать его проще". Так и есть с точки зрения пользователя библиотеки, т.е. автору библиотеки таки да, надо написать чуть-чуть больше, в отличие от первого способа, чтобы конечному пользователю было легче жить.

Ответ из будущего: тянет, искусство не стареет.

Да вы правильно предположили, разрешение описанного конфликта делается ручной правкой текста.


Моя стратегия ручного слияния это взять весь текст из ветки с более весомыми изменениями
(в данном случае master/REMOTE т.е. beta), и поверх него производить пошаговые правки,
т.е. вносить изменения сделанные в другой ветке (master).

Да графический инструмент (meld) только подсветил изменения сделанные в каждой ветке, и сразу стало видно что в ветке beta цвета поменяли на hex коды, а в ветке master добавили капитализацию, пунктуацию и появился предлог "of" которого изначально без подсветки вообще было не заметить.


Но мне не очень нравится жанглировать окнами графического инструмента, поэтому я и предложил свой скрипт gitmerge, где всё сразу на одном экране, и если что в tmux'e каждый сплит можно зумить на весь экран.

Мне к сожалению попадались вакансии, где хотели (выяснялось на собеседовании) чтоб человек хорошо знал PHP, и немного Go (видимо чтоб переделывать что-то из PHP на Go). Хотя в заголовках было написано требуется Go разработчик и не слова про PHP ;) Так что я понял одного Go на данный момент пока не достаточно. Найти вакансию чисто на Go, сложнее.

Автор я вам искренне рекомендую обратить внимание на язык Go. Сам стал активно изучать этот язык, до этого программировал на Java. Зачем изучать другой язык, когда большинство в энтерпрайзе сидят на Java 1.6, и всем все хорошо. Я ушел из энтерпрайза (из банка), потому что чувствовал то же что и вы описали. К сожалению в мире программирования, не все так гладко. Прежде чем стать программистом, я работал в одной нефтяной компании, сис. админом. Так вот там чтоб стать менеджером, человек должен был сначала поработать на буровых лет пять как минимум. Но те кто отработали свои пять лет, как правило не хотели становиться менеджерами и продолжали работать на буровых. Менеджеры в этой компании были в основном люди за 50, с огромным опытом в своей сфере. В сфере же программирования (сужу по своему опыту из банка), люди руководящие (или пытающиеся это делать) программистами, как правило не имеют никакого отношения к программированию, а порой просто случайные люди. Такие "менеджеры" просто мешают программистам делать свою работу, потому что их Эго не дает им покоя. Я желаю вам не отступать раз уж решили стать программистом, и быть снисходительней и терпеливей если на вашем пути попадутся такие "менеджеры".

Ну он поможет это просто заметить. Если тот кто делает merge не обладает достаточной компетенцией, чтоб решить что пойдет в D, он может просто спросить у тех кто эти изменения делал.

Да вы правы, vimdiff, из коробки показывает BASE. Но не видно диффа, как при merge.tool = gitmerge. Вся прелесть заключается в том что сразу видны диффы между (A)-(B) и (A)-©.

Заранее извиняюсь за вольный перевод, но я старался передать смысл, а не быть гугл переводчиком )

Как банально это не звучит, но я купил книгу The Go Programming Language и начал читать, а главное делать задания, которые там даются. Кому интересно, здесь некоторые из них, которые я уже выполнил.

есть специальная папка vendor

Ток от создателей, интересно слышать их позицию и прогнозы, и насколько все оправдалось теперь.
LangNext 2014 (C++, Rust, D, Go)

Спасибо автору за перевод, но все же почему нигде нет ссылки на оригинальную статью? Если она все же есть, просьба ткнуть носом)

Да и думать тут нечего, точно так и есть! И волки сыты, и овцы целы)
Данный код из примера автора, можно упростить:
function status(response) {  
  if (response.status >= 200 && response.status < 300) {  
    return Promise.resolve(response)  
  } else {  
    return Promise.reject(new Error(response.statusText))  
  }  
}

на:
function status(response) {  
  // свойство ok = true, когда status в диапазоне 200-299
  if (response.ok) {  
    // не надо лишний раз оборачивать Promise в Promise
    return response;  
  } else {
    // здесь можно просто кинуть exception
    throw new Error(response.statusText);
  }  
}
Дополнение к табличке:
image
Пользуюсь Vim часто и давно, но полностью перейти на NeoVim в свое время, помешала неработоспособность плагина YouCompleteMe в последнем. Однако время от времени я обновлял (как я тогда думал) NeoVim и проверял его с моим рабочим vimrc файлом.
Обновлял через homebrew командой:
brew upgrade neovim

Однако как в последствии выяснилось, правильно обновлять neovim надо следующей командой:
brew reinstall --HEAD neovim

для поддержки YouCompleteMe плагина, так же надо установить дополнение:
sudo pip2 install neovim

После «правильного» обновления скормил свой vimrc файл без всяких изменений neovim'у и o чудо все плагины работают на ура!
Для производных от IDEA ide, также доступен плагин IdeaVim
1

Information

Rating
Does not participate
Registered
Activity