Информация

Дата основания
Местоположение
Россия
Сайт
tech.kontur.ru
Численность
5 001–10 000 человек
Дата регистрации

Блог на Хабре

Обновить
Комментарии 33
Прочитав про Length/Size, я вспомнил историю надцатилетней давности.
Всех подробностей уже не помню, но суть такая: у какой-то структуры из стандартной библиотеки C++ есть два свойства — size и capacity. Первое это сколько элементов она реально содержит, а второе — подо сколько выделено памяти (память выделяется с некоторым запасом). И вот я был свидетелем, как один программист долго и громко ругался на «глючащий» компилятор. Потому что он знал только о capacity, но трактовал её как size. Я эту разницу знал, но чисто случайно, потому что мне попадался на глаза нужный кусок документации. А если бы не знал, то наверное тоже удивился бы.
Это я к тому, что может не надо пытаться угадывать, что могут означать похожие по смыслу слова?

Мне кажется, это легко взвесить: от угадывания size/length/count в стандартных коллекциях в JS тонна пользы и нужно это часто, а вот вероятность ошибки и вред от неё субъективно мне кажутся меньшими.

Возможно это сказывается багаж опыта, но даже я, человек написавший за всю жизнь на C++ не больше тысячи строк, отчётливо вижу разницу между size и capacity.


Кроме того, если я не ошибаюсь, IDE от Jetbrains угадывают его только для некоторых встроенных типов, а не для любых произвольных типов.

Кстати нет. У меня в кастомном типе есть свойство Count и мне Rider предлагает вводить Length и заменяет его на Count. (никакого отношения к коллекциям мой тип не имеет)
Я думаю он наверное угадывает для тех слов которых нету в самом языке?
Наоборот, только из тех слов, что есть. Например у листов длинна это Count, а у массивов Length, и тут райдер заменит, если перепутать. А если написать какой-нибудь Size, то он не поймет, т.к. такое слово для размеров коллекций в C# не используется.
ну в том же сишарпе коллекции(List) так же имеют capacity, но я никогда бы не додумался(и не смог бы так как он приватный) взять капасити, это признак сверхчеловека в компании!

Вообще очень удивлен, что платформа вроде одна, а функционал разнится. С length/size понятно, это от языка зависит. А вот всякие системные настройки про «Запомнить и больше не спрашивать» или базовые функции редактирования текста типа фигурных скобок вокруг выделения (кстати где-то видел фичу когда пишешь открывающую скобку после однострочного if и закрывающая сама встаёт после первой строки, без всяких выделений) по хорошему могут быть сделаны в общем коде и появляться сами собой во всех продуктах от JB :)
Ещё к таким различиям можно добавить Git клиента. В райдере можно выбирать конкретные файлы для текущего коммита и даже отдельные строки (после появления этой фичи наконец выкинул GitExtensions). Недавно скачивал WebStorm, надо было в хакатоне поучаствовать, очень удивился что туда такую возможность не завезли, коммитить можно только всё сразу, что изменено.

Недавно скачивал WebStorm, надо было в хакатоне поучаствовать, очень удивился что туда такую возможность не завезли, коммитить можно только всё сразу, что изменено.

Некоторые экспериментальные вещи действительно могут обкатываться в отдельном продукте, а потом появляться в остальных, но partial commit доступен в WebStorm с 2018.1.
partial commit доступен в WebStorm с 2018.1.

Посмотрел ещё раз. Посыпаю голову пеплом, он действительно есть. Только не как в райдере сразу в Local Changes отмечать надо (что очень интуитивно и удобно), а в отдельном окне коммита. Я знал что в райдере оно так и даже не подумал что может быть как-то по другому и просто на автомате жал сразу коммит, не разглядывая доп. окошко :)

Если не ошибаюсь, то partial commit не позволяют выделять отдельные строки, только неразрвные блоки строк. По крайней мере когда только появились. По сути только y/n функциональность git add --patch с постоянным s(plit), про e(dit) даже речи нет


Функциональность gut

В текущем вебшторме можно и строчки

Вот беда с фичами, которые попробовал, счёл то ли недолеланнымм, то ли свои хотели странными и забил на них А они там обновляются себе годами…

Вообще очень удивлен, что платформа вроде одна, а функционал разнится. С length/size понятно, это от языка зависит.

В Rider применили другой подход в отличие от остальных продуктов компании. Resharper выступает в роли бекенда со всей основной логикой (и самое главное парсингом синтаксического дерева), а intellijIDEA облегчили и убрали все лишнее и оставили только лишь то что необходимо — сделали ее чисто для отрисовки небольших данных (viewModels) которые гоняют по сокетам. Поэтому и функционал пришлось добавлять в решарпер, заодно и улучшили немного)
давайте позовём в комментарии разработчиков из JetBrains, скажем им спасибо

Спасибо вам за теплую статью от разработчиков Rider и ReSharper :)
и спросим за проблемы в UX :)

Будем рады, если спросите. Попробуем помочь и сделать лучше :)
Я всегда говорю, что когда я пишу на C#, из нас с IDE только один знает язык. Спасибо JetBrains за это)

В Rider есть уберполезная фича: fallback font. То есть можно задать 2 шрифта для редактора и второй будет применяться, если в первым нет нужных символов.


И вот у меня основной Cascadia Code (в котором нет кириллицы) и второй Fira Code. Естественно, оба с лигатурами.
Теперь резко бросается в глаза смешивания языка в именах. И удобно и полезно для качества кода.

Cascadia Code (в котором нет кириллицы)

В Cascadia Code её добавили, кстати.
Я думал, статья про Blazor будет. Пишу на C#, чтобы фронтендерам легче было. Мол, помогаю фронтендерам меньше кодить
Увидел ссылку на VanillaJS, подумал было «да вы охренели, и это название заняли под какой-то очередной фреймворк!», а потом открыл ссылку…
А что насчет того, что при переключении раскладки с англ. на русский перестают работать хоткеи и судя по всему эта проблема тянется уже несколько лет, в платной IDE из коробки такой функционал не должен быть продуман?

youtrack.jetbrains.com/issue/JBR-1662?_ga=2.67614545.1774030316.1576134159-1084891532.1570186525&p=IDEA-80613
8 лет уже проблеме
Почему-то, переходя по ссылке, был уверен, что проблема окажется только в Linux-версии.
Так и получилось.
Почти наверняка это баг не в IDE, а в desktop environment или Джаве.

Если бы проблема была и для Windows — было бы куда больше шума, мне кажется.
Попробовал у себя: Windows 7, Pycharm 2019.3, русская раскладка. Хоткеи из тикета работают точно так же, как и на английской раскладке.

Из магических удобств не могу не упомянуть про TabNine. Это нейронка, которая автоматически предугадывает, что вы собираетесь написать аж по несколько слов сразу. Работает для многих языков, и есть в виде плагинов для JetBrains и других редакторов.

Добавил себе в емакс, полет отличный, спасибо

Обожаю в Rider средство отладки и запуска: хочешь, отдельно запускай по очереди, что нужно в конкретный момент, хочешь все скопом… После студии просто шикарность (через свойства решения каждый раз менять). А да, еще быстрый доступ к истории системы управления версиями: видишь, когда в последний раз редактировалась строка и можно быстро найти нужный коммит. Снимаю шляпу. Но с async/await отладчик как не дружил, так и не дружит
Можете поподробнее рассказать про проблему? Если не сильно лень, то заведите пожалуйста реквест на трекере youtrack.jetbrains.com/issues/RIDER, попробуем выяснить что не так работает

Прочитал с утра пост и только что столкнулся с проблемой. Оказывается в текущем PhpStorm поддержка vagrant весьма ограниченная.


Пользуюсь PhpStorm практически с первой версии, когда-то начала мелькать поддержка Vagrant, видел как в других IDE от JetBrains у коллег полноценная поддержка синтаксиса, автодополнений в Vagrantfile, а вот сам в своей основной никогда не проверял. Сегодня вот решил попробовать внедрить Vagrant в проект и оказалось, что поддержки нет.


Оказывается, она даже имплементирована, но им непонятно насколько она нужна именно пользователям PhpStorm, потому не интегрирована.


Видимо, такой подход ко всем фичам и нужно увидев в "соседней" IDE какую-то нужную фичу заводить тикеты с просьбой добавить её и в вашу. Ну и, наверное, агитировать окружающих плюсовать тикет. Что и делаю пользуясь случаем: кому нужна полноценная поддержка Vagrantfile в PhpStorm — плюсуйте тикет https://youtrack.jetbrains.com/issue/WI-48565


Хотя, конечно, разочарован. Как-то думал, что общесистемные, language agnostic фичи добавляются во все IDE одновременно плюс-минус и в 2019.3 PyCharm можно ожидать тот же набор фич что и в PhpStorm 2019.3. Может для бизнеса и выгодно, чтобы клиенты покупали целые IDE под какой-то ненужный им язык ради нескольких фич, но как-то сомневаюсь, что таких много.


И немного криптологии: таким путём стараюсь перевести всех на IDEA, в которой вроде все языки доступны, а стоит дороже.

Оказывается, с этими мелкими неудобствами можно бороться! Где там линк на трекер

меня очень прикалывает, как VS подсказывает названия для массивов и списков. То есть пишешь условный List и в подсказках к имени сразу users и RegisteredUsers. Особенно удивило, когда для Person[] он предложил именно people. Мелочь, а приятно:)

А я вот даже не знал, что единственное число от data — datum :)

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.