LINUX.ORG.RU
ФорумTalks

Быдлокодинг на скриптах - как избавиться?

 , , ,


0

2

Заметил за собой - когда пишу <что угодно>, сразу вижу, как оное можно написать на шеллскриптах, причем гораздо быстрее. При этом здраво понимаю, что это и тормозит, и ненадежно,и плохо переносимо, и обладает еще кучей недостатков. Но в результате так и пишу на sh. Как преодолеть эту тупую тягу к быдлокодингу?

★★★★★

Тебе просто непопадались «неправильные» файлы, где ты забыл что-нибудь заэкранировать :}

Deleted ()

шелл - для однострочников
а для однострочников это

тормозит, и ненадежно,и плохо переносимо

некритично, поэтому хватить рефлексировать

zolden ★★★★★ ()
Ответ на: комментарий от alozovskoy

Я как-то писал один скрипт. Что-то вида родительского контроля, инфу получает через парсинг файлов. Так там на любой вызов в циклах дохрена пинков sed/grep/awk. Представляешь, по сколько времени один проход идет? А переписать на нормальных языках...

DeadEye ★★★★★ ()

Не огорчайтесь, скоро лёнька велокомбайнёр всех избавит от консоли. Будем мышкой программировать :)

trueshell ★★★★★ ()
Ответ на: комментарий от Amet13

У меня нет пока что продакшена, не считая хостинга, будущей VPS и локалхоста.

DeadEye ★★★★★ ()
Ответ на: комментарий от dvrts

Это проблема. Но если оно не используется в проде и как говорил ТС у него только локалхост и может быть какая-то впска, то скрипты там примитивные.

Сам я пишу не намного лучше. Надо писать не на баше, а на перле.

Amet13 ★★★★★ ()

Как преодолеть эту тупую тягу к быдлокодингу?

Не всякий шелл-скрипт - быдлокод.

Если это на один раз и шелл решает задачу, то, имхо, красота не нужна.

Если это то, чем ты или кто ещё будет дальше пользоваться, то я бы посоветовал складывать всё в git. Это позволит гораздо легче рефакторить и, вероятно, заставит лучше думать над тем, что пишешь.

Ну и очевидно, что инструменты следует выбирать под задачу. Я бы, скажем, не стал парсить JSON башем. И, скорее всего, не стал бы писать свой велосипед, который делает ровно то же, что и sort | grep | awk

Вообще, это офигенно, что тебя заботят такие вещи.

kdask ()
Ответ на: комментарий от kdask

дальше пользоваться

This. У меня в git скрипты (тяжелые) и хранятся.

DeadEye ★★★★★ ()

Отрубай себе по пальцу каждый раз, когда так делаешь. Если сам не можешь (слабовольный-малохольный) - заставь друга. Если нет друга - зови меня. )

Sociopsih ★☆ ()
Ответ на: комментарий от DeadEye

Perl - жив скорее как legacy, не на многих новых проектах ты его найдешь. Если интересно не только пользоваться, но и развиваться вместе с требованиями рынка, стоит учить python.

dvrts ★★★ ()
Ответ на: комментарий от DeadEye

Python - в процессе изучения, но я не вижу ему особой сферы применения у себя.

как самое примитивное, просто переписывай свои скрипты на петон. Скорость исполнения скрипта прилично возрастёт :)

n_play ()
Ответ на: комментарий от DeadEye

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

Sociopsih ★☆ ()
Ответ на: комментарий от n_play

Но тогда скорость откуда повысится? Так и дергаю, получается, постоянно. Видишь мою проблему - в bash я это делаю нативно (с натяжкой), а в Python - это уже костылинг. Родной же способ упоротый.

DeadEye ★★★★★ ()
Ответ на: комментарий от DeadEye

Но тогда скорость откуда повысится?

думаешь башовый, наверняка почти построчный интепретатор, невносит свою лепту в скорость исполнения?

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

на реальных многострочниках эффект должен быть заметен.

n_play ()
Ответ на: комментарий от Black_Shadow

Вот и я о том же. Гораздо проще было бы в качестве параметра отдать цифры, как при записи в реальном chmod. Так нет, надо нагородить 100500 параметров, в которые без поллитры не воткнешь.

DeadEye ★★★★★ ()
Ответ на: комментарий от Black_Shadow

Под виндой да, какая-то упоротая система прав. Если смотреть из Проводника - наркомания чистая, для того, чтобы поменять права, надо через кучу окон пробраться.

DeadEye ★★★★★ ()
Ответ на: комментарий от DeadEye

Не совсем понятно. Не нравится, потому что «неприятно» писать, или потому что нарушает какие-то принципы «хорошего кода»?

buddhist ★★★★★ ()
Ответ на: комментарий от buddhist

Мой собственный принцип хорошего кода, скорее. Не перегружать кучей нечитабельных параметров ничего.

DeadEye ★★★★★ ()

прочитал твой пост, и написал ответный.

из предположения, что кодить не на баше просто сложно и неудобно. Т.е. нужно разобраться, как на той же джабе можно писать просто и легко.

Напутствие в трудной жизни.

stevejobs ★★★★☆ ()
Ответ на: комментарий от kombrig

Даа. Его ты еще крокодила Гену не видел. И заметь, еще только среда. )

Sociopsih ★☆ ()
Ответ на: комментарий от trueshell

Будем мышкой программировать :)

Не знаю насчет мышки, а вот трансляция мыслей в код была бы прикольна :)

drull ★☆☆☆ ()

Вопрос озвучен не вполне верно. Проблема же не в Баше, а вот в этом:

Так там на любой вызов в циклах дохрена пинков sed/grep/awk

Киньте ссылки на самые стремные участки ваших скриптов, думаю, не проблема минимизировать число субпроцессов или даже переписать их на чистом Баше.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)

Как преодолеть эту тупую тягу к быдлокодингу?

Продолжай писать на баше. Когда-нибудь твоему скрипту подвернется пробел в файле и он поделит твою систему на ноль.

crowbar ()
Ответ на: комментарий от trueshell

Будем мышкой программировать

Ты сделал мою ночь!)))

bookman900 ★★★★★ ()
Ответ на: комментарий от drull

трансляция мыслей в код была бы прикольна :)

тогда начнут мысли воровать через системГ :)

trueshell ★★★★★ ()
Ответ на: комментарий от DeadEye

Так там на любой вызов в циклах дохрена пинков sed/grep/awk.

1. Не понятно зачем тут нужен grep, если уже sed используется ?
2. Повнимательнее почитайте доки по sed, что бы выборку за один проход делать. Условия не сильно сложнее будут, а профита по скорости добавит.

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.