Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Это нормально так разрабатывать боты?

Лучший ответ:
Лучше храните слова в том же json + один класс который это все будет обрабатывать и давать результат
Конечно говнокод, это же для 1000 слов 1000 таких if ?

Худший ответ:
1. Смотрите switch-case
2. Используйте рекурсивный спуск по веткам наилучших соответствий для выдачи (отображения/echo) нужных вариантов ответа.UPD: Если хочется реально круто сделать:
Советую попробовать сравнение через Stumper API.
По наибольшему проценту совпадения с имеющимися у вас фразами - даёте нужный ответ.
Вопрос: Какое количество PHP memory больше подойдет?

Лучший ответ:
Там и 32 должно хватать

Худший ответ:
У вп есть тех требования посмотрите там.
Вопрос: Какой из двух вариантов работы с данными в Angular выбрать?

Лучший ответ:
1-ый вариант. Второй только если вам очень нужна поддержка работы оффлайн и она делается поверх первого.
Минусы первого варианта смехотворны по сравнению с плюсами и минусами второго. Есть же такая вещь как кэширование.

Худший ответ:
Для второго варианта, будет меньше возни с синхронизацией, если заиспользовать www.getbreezenow.com/breezejs
Вопрос: Как правильно хранить оценки для постов, но быстро сортировать посты по средней оценке?

Лучший ответ:
Когда речь идет о рейтинге фильма, а не об необходимом уровне погружения графитовых стержней в ядро реактора, можно пренебречь точность и актуальностью. Средний рейтинг хранить вместе с фильмом и пересчитывать его время от времени. Это будет самым быстрым решением аак с точки зрения записи, так и чтения.

Худший ответ:
Как уже правильно было сказано должно быть:таблица с постамитаблица с оценкамитаблица с рейтингом
Прим. Не обязательно таблица, не обязательно база реляционная - для задачи это не играет никакой роли
Эти 3 сущности напрямую ни через одну логику влиять друг на друга не должны, ибо может привести к довольно печальным последствиям.
Что касается транзакций - там много чего интересного может происходить, включая блокировки, но самое главное что не стоит выносить данную логику на соединение клиента - при увеличении размера базы будет расти и время запроса, а там и другие интересные последствия. Но! Есть решение.
Для того чтобы сделать все красиво существуют Message Brokers (RabbitMQ, Kafka, ... да какой угодно в принципе - выбор зависит от требований к системе). 
Архитектура такая:пользователь оставляет оценку к постуоценка сохраняется в базе оценокпосле сохранения в брокера падает сообщение "у поста 12345 новая оценка" (сама оценка для этого кейса не важна, но ее можно тоже указать)клиент счастливо идет дальше серфить интернеты, не ожидая обработки всякой логики, которую задумал программистна той стороне брокера сидит маленький демон и слушает эти событияпри появлении события демон моментально пересчитывает рейтинг поста и обновляет его в отдельной таблицепри росте нагрузки на демона ничего страшного не происходит - все сообщения встают в очередь и ждут обработкину, если хочется совсем все быстро обрабатывать - запускаем ХХХ этих демонов чтобы пережевывали за раз больше информации
Вот так. Надеюсь вам поможет такой маленький пример их мира энтерпрайз-разработки
Вопрос: Лучшая cms для базы знаний?

Лучший ответ:
Практически любая.

Худший ответ:
wordpress - идеальная и бесплатная cms для ваших нужд. 
Плагин мультиязычности
Всё остальное уже внутри. По сути, если не хотите переделывать, то можете воспользоваться модулем новостей и вперёд. Он уже имеет возможность разбивки по категориями и т.п. Либо создать свой модуль, проблем это тоже не составит. Поиск там тоже есть, там есть всё, что нужно для вашей задачи, даже с лихвой
Вопрос: Выбор ВУЗа по сайтам в Москве?

Лучший ответ:
Соглашусь с предыдущим постом. 
Как мне кажется, идя в ВУЗ не нужно полагаться на то, что тебе там будут давать какие-то практические навыки. 
ВУЗ это не про это. ("Хотелось бы найти более менее приличный ВУЗ связанный с веб-разработкой, интересуют направления по веб-разработке и защита данных.")
Некоторые люди в комментах уже ответили, что такие практические навыки, как веб-разработка и тому подобное это уровень техникума. И это не плохо. Это нормально. ВУЗ, как мне кажется, это больше про науку, про высокотехнологичное производство или какую-то околонаучную деятельность.

Худший ответ:
В московских вузах не учат фронтенд. Да и бэк тоже. 
Там ты можешь получить фундаментальные знания по программированию в его классическом понимании: алгоритмы, структура взаимодействия, иногда паттерны. Для фронт/бэкэенда это не нужно. Если хочешь более углубленно уйти в программирование, дата сайнс например, то тогда иди в вуз. Ориентируйся на Бауманку/МГУ, крайний вариант МИФИ.
Вопрос: Как оптимальнее вставлять картинки на сайт?

Лучший ответ:
очевидно есть два пути:
1) научиться сжимать картинки
2) научиться дизайнить минималистично, помня о килобайтах

Худший ответ:
Как вариант: В адаптивном дизайне есть метод, использующий несколько картинок разного размера.
В JS создаётся скрипт, который грузит "тяжелый рисунок" только если разрешение монитора велико.
Если разрешение "не дотягивает", то используется картинка поменьше.
Что почитать: почитайте книгу " Добавь воздуха! Основы визуального дизайна для графики, веба и мультимедиа". Выше вам правильно написали: нужно дизайнить минималистично.
Вопрос: Какой софт выбрать для бэкапа сервера на Ubuntu?

Лучший ответ:
Есть отличный проект под названием attic. Эффективно бэкапит каталоги, без дублирующихся данных. Может даже шифровать по ключу.

Худший ответ:
Попробуйте backupninja. В настройке может помочь псевдографический ninjahelper (он вроде идет в одном пакете с backupninja).
Умеет бекапить mysql и postgresql, инкрементное копирование через rdiff-backup, duplicity, rsync, отчитываться в почту о проделанной работе.
Вопрос: За jQuery animations или css3 animation?

Лучший ответ:
Развёрнуто здесь нечего писать. Кроме того, в сети масса информации.
Нужна поддержка устаревших браузеров - jQ animate. (минус - заведомо худшая производительность, и вынос оформления в js)
Не нужна - css3 animations.

Худший ответ:
Velocity.js без тормозов работает.
Вопрос: Что нынче должен знать php junior без опыта?

Лучший ответ:
Отвечайте на все вакансии, на которые хоть немного подходите, на ваш взгляд. И на те, на которые не подходите - тоже отвечайте, если это хотя бы где-то близко. Показывайте примеры, старайтесь получить обратную связь (тут как повезет). Просите тестовое задание, попадите пару раз на собеседование и быстро поймете, где чего не хватает. А где-то может и сразу хватит. Вакансии очень часто пишутся ... скажем не корректно.

Худший ответ:
Согласен с тем, кто посоветовал перестать называть себя Джуниором))) для джуни и хелло ворд уже уровень, а у тебя хороший багаж знаний.
Вопрос: Почему ПК не видит флешку после мака?

Лучший ответ:
Ну зайдите в управление дисками и посмотрите какие разделы ест
Вероятно просто не задана буква для диска

Худший ответ:
Потому что винда не мак не умеет работать с разделами на флешках, максимум первый увидит и то если он в fat32, всю флешку в exfat для win7+
Вопрос: Что это за фигня на developer.mozilla?

Лучший ответ:
Так как документация свободно редактируется - кто-то нагадил.upd:
Я зарегался и удалил эту ссылку. Так что в этой документации править может любой, что угодно и где угодно.upd2:
До этого редактировал статью: https://developer.mozilla.org/ru/profiles/AlexeyFedotof
Вроде он норм переводил, судя по ревизиям, может взломали или случайно вставил.upd3:
Ссылка появилась 1 июня в этой ревизии:
https://developer.mozilla.org/ru/docs/Web/SVG/Элем...
Автор: https://github.com/CreativeSeo33
Исходники сайта: https://github.com/SC33/skgolden
Скорее всего ссылка была дана действительно, как пример(хоть и совсем не очевидный), ибо в исходниках на главной действительно есть тег <g>

Худший ответ:
Любой может редактировать страницу. Восстановите справедливость.
Вопрос: С помощью чего делается анимация на лендингах?

Лучший ответ:
Animate.css + wow.js
Это самое распространенное и легкое

Худший ответ:
Точно также как и не на лендингах.
Берешь понравившуюся тебе страничку - и смотришь её код.
Код же доступен, в некоторых браузерах еще и отладка есть - все отлично видно.
Вопрос: Как поменять размер этого блока в HTML?

Лучший ответ:
какого этого ?

Худший ответ:
В SVG размер элементов меняется через scale
Вопрос: Что даст замена HDD на SSD на MacBook Air?

Лучший ответ:
Поменять можно, станет заметно лучше, но чуда ждать не стоит.

Худший ответ:
Поменять можно, станет заметно лучше, но чуда ждать не стоит.
Вопрос: Как сделать периферийную базу sql?

Лучший ответ:
Ну. первое что пришло на ум, перейти на 8-ку.
А второе озадачится с объемом базы, что нужно в магазине. Какая информация, лишняя иногда чтобы не заморачивать делаю полный срез. Можно обрезать базу удалив предыдущие периоды. Для аналитики есть центральная база.

Худший ответ:
1)Выгрузить можно, размер от этого не уменьшится.
2)Если нормально настроите, будет работать.
Вопрос: Когда нужно использовать while вместо for?

Лучший ответ:
qaru.site/questions/88439/why-use-a-for-loop-inste...# Дополнение
Тут дело не в том, какой вариант надо/не надо использовать, а в том, какой будет семантически правильно использовать, исходя из здравого смысла, чтобы код был читаем для себя же самого в будущем и другими программистами.For используется в основном для итерации "от и до" - определенное количество раз. Например, перебор массива от нуля до известного нам конца массива, или для создания заранее известное количество экземпляров объектов.While (читай: пока / до тех пор, пока) в основном используется, как можно уже понять по смыслу, в циклах, когда заранее неизвестно количество операций в цикле до его завершения. Например выполнение программы до тех пор, пока пользователь не нажмет Esc, или генерирование числа Pi, пока не истечет время.

Худший ответ:
никто пример не скинул, поэтому оставлю тут для себя и других что нашел 
Предположим, что мы хотим попросить пользователя ввести число от 1 до 10. Но что произойдет, если он введет неправильное число?
В этом случае мы должны попросить его снова ввести значение, и проверить, соблюдено ли условие (введено ли число от 1 до 10).
Это случай, в котором цикл for с треском бы провалился. Потому что мы не можем заранее знать, сколько раз нам придется попросить пользователя ввести корректное число. В таком случае к нам на помощь приходит цикл while.
www.internet-technologies.ru/articles/cikl-while-v...
Вопрос: Можно с вами посоветоваться по поводу изучения?

Лучший ответ:
Изучайте Javascript, полностью знать необязательно.
Вот что необходимо будет почитать:js - анимацияСобытия мышиСобытия  прокрутки 
jQuery будет только тормозить в развитии, лучше разберитесь как работать без него, будет потом проще понимать, базовые функции, и работу js.scrollmagic - Хорошая библиотека для анимирования при прокрутке

Худший ответ:
надо не рассуждать, а начинать что то делать
Вопрос: События форм в jQuery — есть ли .reset?

Лучший ответ:
Вот так:$('#youform')[0].reset();
или$('#youform').trigger( 'reset' );

Худший ответ:
может нужно использовать .trigger('reset') ?
Вопрос: Появился ли способ подружить flexbox и ie 8?

Лучший ответ:
или какой способ что бы решить эту проблему ?перейти на IE9+
PS: заказчику поясните, что сейчас нижняя планка для IE - это IE9.
Ладно... Ловите!

Худший ответ:
или какой способ что бы решить эту проблему ?перейти на IE9+
PS: заказчику поясните, что сейчас нижняя планка для IE - это IE9.
Ладно... Ловите!
Вопрос: Какой linux дистрибутив установить на нетбук ASUS eee PC?

Лучший ответ:
У меня аналогичный аппарат, Atom + 1 гб памяти
Долго перебирал и тестировал дистрибутивы.
Основная задача была подобрать нетребовательный дистрибутив к железу
(в основном работа в терминале и  браузере)
Собственно список лидеров по убывающей:
Debian 8.5 Mate
Xubuntu
Mint XCFE
Mint Mate
Mint Cinamon

Худший ответ:
Смотри сюда. Лучше не сделаешь.
www.leeenux-linux.com
Вопрос: Не могу интегрировать php в html?не отображаются данные.как засечь ошибку?

Лучший ответ:
Хоспаде...
Дочитал до "короче вытаскиваю ид из адрессной строки при помощи substr", дальше не читал.
Учите PHP и не задавайте глупых вопросов. Хотя бы про $_GET почитайте...

Худший ответ:
смотрите массивы
Вопрос: Upwork JSS скатился до 78%, как найти работу?

Лучший ответ:
У TR есть возможность скрыть/убрать отзыв. Не воспользовались? Потихоньку отправлять заявки, искать какие-то контракты. Не работать с клиентами с рейтингом ниже 4.9. Перед подачей заявки смотреть отзывы по клиенту и какие он отзывы отправляет фрилансерам. К сожалению, такое часто случается и надо просто работать дальше.

Худший ответ:
писать, писать, писать  коверлетер
С существующими заказчиками - если есть контракты  - попросить вместо майлстоунов разбить на апворк-задачи, на которые тебя же и выбрать, и закрыть их с нормальными оценками,
Если заказов нет - написать привет, я делал то-то и то-то, вот там-то можно улутшить бы код (производительность, дизайн, верстку...) не хотите ли часом?
Вопрос: Как массово править куски кода?

Лучший ответ:
Сделать рефакторинг 
Исправить в одном файле

Худший ответ:
Во всех современных текстовых редакторах есть замена данных в файлах, например в Sublime Text, Bluefish (Linux), Notepad++
Если код везде одинаковый, то при помощи редактора легко замените на новый
Вопрос: "Оцените приложение" или стоит ли такое показать при собеседовании?

Лучший ответ:
По моему на джуна слабавато. Переведи все на ес6. Добавь логики в контроллер. Добавь страницу с результатами по определенному матчу. Юзай ui-router. Напиши какой нибудь сервис.

Худший ответ:
1) почитай когда следует использовать директивы, а когда компоненты
https://docs.angularjs.org/guide/component
2) Работу с данными выносят в сервис и $http стараются не использовать
3) www.codelord.net/2016/11/23/spotting-outdated-angu...
4) https://github.com/rwwagner90/angular-styleguide-es6
Вопрос: Долго разбираюсь в математике, как ускориться?

Лучший ответ:
Старайтесь посещать все пары и задавайте вопросы преподам во время и после пары, говорите со своими одногрупниками по предметам

Худший ответ:
Успеете, имхо. После C изучить любой другой императивный язык дело тривиальное.
Вопрос: Почему не работает coffee-screept?

Лучший ответ:
может, всё дело в грамматике (coffee-script)

Худший ответ:
в переменную среды PATH нужно прописать путь к исполняемому файлу coffee. Что это за переменная и как ее изменить - Ваше домашнее задание =)
Вопрос: Обычный домен в onion зоне?

Лучший ответ:
как можно провернуть такое? Элементарно.
Берете обычный домен, размещаете на нем нелегальный контент и через некоторое время он у вас будет открываться только через TOR.
P.S. - только просьба - пожалуйста не размещайте нелегальный контент на адресах вроде 127.0.0.1 и на доменах вроде localhost. Это создает изрядные проблемы Роскомнадзору, были случаи.

Худший ответ:
Никакой магии сдесь нет, список всех exit node (узлы выхода из сети TOR) известен и обновляется не часто. Если сайт отвечает только на запросы с этих IP, то открываться он будет только из сети TOR.
Вопрос: Как создать свою домашнюю лабораторию системного администратора?

Лучший ответ:
Можно реализовать на виртуалках.

Худший ответ:
vmware и вперед, сеть теоретически можно - чтобы попопадать на затыки с внешней маршрутизацией, но оно редкио в жизни бывает
Вопрос: ГОСТ 2015 и Диффи-Хеллман, как подружить?

Лучший ответ:
Обычно Диффи-Хеллман как раз и генерирует сессионный ключ, на котором будет зашифровано сообщение каким-нибудь блочным шифром, например, ГОСТ 2015.
Но если Вам принципиально, чтобы программа сначала сгенерировала случайный ключ и провела шифрование блочным алгоритмом, а только потом провела обмен по Диффи-Хеллману, то такое тоже возможно, хотя и несколько избыточно:
1) согласуйте по Диффи-Хеллману обычным порядком сессионный ключ;
2) зашифруйте этим ключ Ваш ключ блочного шифрования и отправьте по каналу абоненту Б.
P.S. А они точно "оппоненты" а не "абоненты" ?

Худший ответ:
отправляет ключ для расшифровки зашифрованного текста по протоколу (или алгоритму) Диффи-Хеллмана
Что-то в этой фразе не так. Алгоритм Диффи-Хеллмана позволяет двум сторонам согласовать ключ шифрования не передавая данных, по которым третья сторона могла бы этот ключ получить (кроме атаки MiTM). 
Как правило, этим методом стороны в начале общения вырабатывают общий сессионный ключ, а затем используют его при обмене сообщениями.
Вопрос: Какой выбрать vps/vps?

Лучший ответ:
Цена до 35 usd 
Нет таких VDS. Если найдете, не забудьте протестировать.

Худший ответ:
Firebase, Amazon, Google и Azure, но под 1-2 терабайта использование и под такую цену необходимо купить оборудование и самому построить, благо выделить белый IP не проблематично сейчас
Вопрос: IP камера на расстоянии 94 метра?

Лучший ответ:
Попробую воткнуть посередине Mikrotik mAP 2nD

Худший ответ:
Каким тестером проверяете целостность кабеля? Бывало такое, что когда с одной стороны включено в свитч или другое сетевое оборудувание - то тестер выдавал полностью рабочий кабель, но когда на стороне оборудования ставилась заглушка - то выдавалась более объективная информация, определяло одну-две не рабочие жилы. Часто с таким сталкивался. 
Попробуйте перекинуть местами пары, там где линк пускайте питание, где питание - линк...
Вопрос: Как изменить пути auth в ларавел?

Лучший ответ:
а причем здесь роуты?
В контроллерах находится всё что нужно, во view все что нужно. Чего нет, можно до-наследовать и править.

Худший ответ:
вот маршруты, замени их на которые тебе надоRoute::get('login', ['as' => 'auth.login', 'uses' => 'Auth\AuthController@showLoginForm']);
Route::post('login', ['as' => 'auth.login', 'uses' => 'Auth\AuthController@login']);
Route::get('logout', ['as' => 'auth.logout', 'uses' => 'Auth\AuthController@logout']);

// Registration Routes...
Route::get('register', ['as' => 'auth.register', 'uses' => 'Auth\AuthController@showRegistrationForm']);
Route::post('register', ['as' => 'auth.register', 'uses' => 'Auth\AuthController@register']);

// Password Reset Routes...
Route::get('password/reset/{token?}', ['as' => 'auth.password.reset', 'uses' => 'Auth\PasswordController@showResetForm']);
Route::post('password/email', ['as' => 'auth.password.email', 'uses' => 'Auth\PasswordController@sendResetLinkEmail']);
Route::post('password/reset', ['as' => 'auth.password.reset', 'uses' => 'Auth\PasswordController@reset']);
Вопрос: Как узнать какой класс запущен из командной строки java?

Лучший ответ:
Статические методы не наследуются, так что через рефлексию это не получить.
Два варианта, пришедшие мне в голову:
В классах Recv и Send описать свои методы main, которые просто вызывают Robot.main, тогда в Robot.main можно получить информацию о вызываемом классе из стектрейса:StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
stackTrace[stackTrace.length - 1].getClassName();
Второй вариант - посмотреть системную переменную sun.java.command, которая указывает на класс, который был запущен.System.getProperty("sun.java.command");
Вопрос только в практическом применении этого.

Худший ответ:
Сделайте по-человечески. 
Первое - как можно быстрее уйти от статики. Делаете у робота protected final void run(String[] arts){...тут код из main...}
Второе - у каждого из наследников делаете метод main - очень простой. Внутри него одна строчка - например, new Send().run();
Теперь в run можно по getClass определить, кто вы.
Но! Это довольно плохо - когда предок знает о потомках. Вам надо придумать, как оставить всё общее в Robot, а все различия вынести в его потомков, используя полиморфизм.
Наследование статических классов(имеющих только статические методы) - это бессмысленно чуть более, чем полностью.
Вопрос: С чего начать и как себя рекламировать веб-мастеру?

Лучший ответ:
Начни с сарафанного радио. Напиши о своих услугах у себя в сойсетях. Попроси отзыв о своей работе, который тоже размести в соцсетях. Выставляй ссылки на свои работы там же. Все это не требует много времени и денежных затрат.
В последствии, сделай свой сайт с описанием своих работ, условий работы с тобой, ценами на свои работы. Запомни - биржи фриланса не единственное место где ты можешь найти клиента.
Успехов!

Худший ответ:
Странный вопрос по поводу того окупится ли трата на премиум аккаунт.
Такое впечатление что уровень профессионализма твоего тут всем известен, раз задаешь такой вопрос.
Вопрос: Как на сайте имитировать щелчёк мыши по кнопке, а после этого получить новуй страницу и записать её html в переменную?

Лучший ответ:
Вот: https://bitbucket.org/rflechner/scrapysharp/wiki/Home
А вот пример использования https://habrahabr.ru/post/323202/

Худший ответ:
сразу быстро не ответишь.. есть несколько вариантов и вам рекомендую начать с самого простого:
посмотреть какие запросы отправляются при нажатии на кнопку и этот запрос воссоздать через HttpWebRequest и HttpWebResponse:string urlAddress = "http://google.com";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK)
{
  Stream receiveStream = response.GetResponseStream();
  StreamReader readStream = null;

  if (response.CharacterSet == null)
  {
     readStream = new StreamReader(receiveStream);
  }
  else
  {
     readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
  }

  string data = readStream.ReadToEnd();

  response.Close();
  readStream.Close();
}
или так:using System.Net;

using (WebClient client = new WebClient())
{
    client .QueryString.Add("ключ", "значение"); //для get
    string htmlCode = client.DownloadString("http://somesite.com/index.html");
}

//post запрос:
string url = "http://site.com/";

            using (var webClient = new WebClient())
            {
                // Создаём коллекцию параметров
                var pars = new NameValueCollection();

                // Добавляем необходимые параметры в виде пар ключ, значение
                pars.Add("ключ", "значение");

                // Посылаем параметры на сервер
                // Может быть ответ в виде массива байт
                var response = webClient.UploadValues(url, pars); 
            }
если не удастся так сделать, то выход через COM библиотеку MSHTML  (для этого добавьте её "references" -> "COM" -> «Microsoft HTML object library»
далее using mshtml;тут пример использования
где полученный html вы передаёте в HTMLDocument doc = new HTMLDocument();
                IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
                doc2.clear();
                doc2.write(//тут html-код (string));
 
                IHTMLDocument3 doc3 = (IHTMLDocument3)doc2;
                IHTMLElement btns = doc3.getElementById("YouId or ne YouId");
далее находите кнопку:IHTMLElementCollection buttons = btns.all;
 
                foreach (IHTMLElement element in buttons )
                { 
                        element.click(); 
                 }
далее опять парсим страницу.
(п.с.с. примерно так)
можно через webbrowser выполнить javascriptтык и тык
Вопрос: Какие требования к приложениям facebook?

Лучший ответ:
Кому и как можно задать вопрос? 
Техподдержка фейсбука - самый верный адресат подобных вопросов

Худший ответ:
https://developers.facebook.com/policy/
Много ньюансов
Для нового приложения желательно придумать детальное пояснение, что и зачем ему нужно
Вопрос: Можно ли назвать это говнокодом?

Лучший ответ:
Наследование ElementsTable от Sorting выглядит нелогично. Таблица не должна наледовать сортировку. Класс Sorting в этом случае вообще не нужен. Мнимум это можно сделать его методы статическими, максимум - вообще вынести функции в отдельный файл
sorting не особо полезен, чтобы под простой тернарник делать отдельную функцию
Какие-то магические переменные и регулярка в sortingByDate. В нем же дублируется логика для первой и второй даты
createOptionTags, createOptions и т.п. лучше выносить  в отдельный класс для работы с представлением. А еще лучше, если это не единичный случай работы с DOM, использовать что-то легковесное для синхронизации представления и данных (preact, например)
selectColumn - а какой column, не понятно, никакие параметры не принимает

Худший ответ:
Да, можно назвать.