LINUX.ORG.RU

Отрецензируйте, пожалуйста, код

 ,


1

1

Как кто-то говорил на ЛОР-е, настоящий программист должен сделать 3 вещи:

1) Написать helloworld
2) Написать калькулятор
3) Написать аудиоплеер

Собственно, первые 2 пункта уже имеются. А тема это о калькуляторе. Писался он ради развлечения и повышения собственных навыков GUIстроения. Ссылка: https://github.com/xdevelnet/n0calc

Язык: c99 (с возможность легко переписать на c89)
Тулкит: GTK3

Хочу послушать любые замечания по стилю, логике, наличию или отсутствию говнокода, etc.

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

P.S. «поревьюйте» - я правильно написал?

★★★★★

Последнее исправление: reprimand (всего исправлений: 2)

Рецензия:
Код говно
Рецензия окончена

Что тут ваще рецензировать? это ж хеловорд. ни идеи, ни архитектуры

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

Так то Cancel, а не Quit.

суть не меняется

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

Спроси еще зачем добавляют в меню File каждой 2-й программы последним пунктом «выход».

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

суть не меняется

Меняется. В диалоговых окнах должны быть кнопки Да/Нет, ОК/Отмена или что-то в таком духе, везде такое есть, ни разу не видел, чтобы вместо отмены предлагали на крест жать.

А в приложениях GTK3 эта кнопка такая огромная, что смысла её дублировать никакого.

А если её нет?

С чего бы? У меня в i3 у Evince-GTK3 и то есть.

Спроси еще зачем добавляют в меню File каждой 2-й программы последним пунктом «выход».

Фишка меню в том, что через него можно выбрать любое действие. В правильно организованных ОС — даже без мыши: нажал Alt — добро пожаловать! Поэтому и выход там быть обязан, чисто для порядка.

И да, на скриншотах — дефолтные приложения третьегнома, т. е. эталон «правильных» приложений GTK3.

batekman ★★★
()
Последнее исправление: batekman (всего исправлений: 1)
Ответ на: комментарий от reprimand

Тьфу, не заметил :)

Всё равно, думаю, неудобно будет гномерам вместо привычного креста искать где-то этот Quit. А у пользователей других WM функционал таки дублируется.

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

Я не уверен на счет FSM, но там был полноценный арифметический парсер, и мы потом по фану добавляли всякие встроенные функции, константы и переменные.

UPD. Парсер и собственно вычислятор, естественно.

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

Если была задача изучить фичи gtk3 - отсутствует *.ui шаблон, чтобы разделить логику и gui. Там же хранится описание эвентов статических компонентов, меню и прочее.
Прочитай про пару gtk_widget_class_set_template_from_resource gtk_widget_init_template.
И дополнительно о GtkApplication.

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

Забей, это все не важно, иди на Harkerrank, Exercism и прочее и решай задачки на нужные темы / языки.

loz ★★★★★
()

Какая там развесистая лапша, однако.

shkolnick-kun ★★★★★
()

настоящий программист должен сделать 3 вещи

Давно уже 4. Свой ЯП придумать обязан.

ashot ★★★★
()

На XCB напиши. GTK3 неинтересно

SZT ★★★★★
()

http://pastebin.com/ihrjdB3k Вот недопиленные крестики-нолики на XCB, по-хардкору все, не то что всякие там GTK

SZT ★★★★★
()

Код плохой, расширять будет больно, читать его уже больно. Делать программу из большого файла main.c не правильно, запомни это. Почитай про MVC например. Описывать интерфейс на уровне кода годится только для прототипирования, потом это выносится в конфиг файл тулкита, обычно они умеют строить интерфейс опираясь на какой-нибудь XML или т.п.

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

А вот код на XCB который я продемонстрировал - он элементарно расширяется изменением дефайнов

SZT ★★★★★
()

Наверняка спрашивали, но почему интерфейс ручками делаешь, а не с помощью glade?

anonymous
()

Ну и писать ручками интерфейсы на гтк — дело не очень благодарное. Лучше glade & vala.

anonymous
()

в калькуляторе минусы следующие:

0) проектирование не проводилось ни в каком виде. Иначе сложно объяснить появление кнопок Quit и Info, которые не относятся к задаче калькулятора

1) код не документирован. Прочее можно не говорить :-)

2) в коде не разделены внешний вид и внутренняя логика.

3) Если выбор 100% в пользу Gtk - то разумно было-бы использовать glib на полную катушку и не тягать strXXX

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

Плюс я не нашел смысла сделать полноценный калькулятор из-за наличия имеющегося mate-calc.

Вообще-то его в mate больше нет. Последний релиз был 1.8.0, а mate сейчас уже 1.12. Они предложили перейти на galculator.

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

все объявления в хедерах, а реализацию в c файлах

Это как-то радикально. Надо уточнить, что не все, а только декларации public функций, типов,.. А всё static в начале .c исходника.

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