LINUX.ORG.RU

Моя программа «Школьный день»

 , , , ,


0

3

Всем привет! Мне 14 лет, учусь в 7 классе. Для школьной научно-практической конференции по информатике решил разработать собственную программу «Школьный день».

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

Программа написана на Rust с использованием GTK4 и libadwaita. Есть сборки для Linux и Windows (в будущем планируется на mac).

Сейчас доступна версия 0.4.0. В разработке мне помогал ИИ, и часть кода была написана с его помощью. При этом я самостоятельно тестирую приложение, исправляю ошибки и постепенно пишу на Rust. После первых отзывов уже удалось исправить несколько недочётов и настроить автоматическую сборку Windows.

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

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

Если захотите попробовать программу, сообщить об ошибке или помочь с разработкой - буду рад.

Исходный код и установщики: https://github.com/sqeezy-53/school-day



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

похвально ;-) добавь туда библиотечную задолжность, академический долг по больнякам и актировкам ну и фразу дня.

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

Авторы подробно, доступно и образно обосновывают свою точку зрения и призывают каждого человека на планете задуматься об экзистенциальной угрозе, нависшей над всеми нами. Пока еще не поздно.

Уже поздно. Никто не остановится. Поэтому привыкаем к новой жизни. Как у ДДТ «…И когда умираешь — как с этим жить…», надеемся на себя и на творчество.

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

Просто к слову, это далеко не мой первый проект. До «Школьного дня» я уже самостоятельно изучал Rust и написал несколько небольших программ, поэтому это не мои первые шаги в программировании.

Сейчас ИИ помогает мне с разработкой, но я продолжаю самостоятельно разбираться в коде, исправлять ошибки и изучать новые возможности языка. Я понимаю, что полностью полагаться на нейросети не стоит, поэтому стараюсь постепенно становиться более самостоятельным.

sqeezy-53
() автор топика
Ответ на: комментарий от splinter

Задумаюсь к последущим релизам, пока улучшаю стабильность программы

sqeezy-53
() автор топика
Ответ на: комментарий от CrX

Математики практически не работают с числами 💩

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

Отдельно выделять pronouns как указание «как к тебе следует обращаться» изобретение исключительно WOKE культуры

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

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

Да, GTK4 требует дополнительных библиотек, я это понимаю. Но для меня важнее его возможности, готовые компоненты интерфейса и интеграция с GNOME. Статическая сборка сама по себе не делает egui или iced лучшим выбором для любого приложения. Для своего проекта я осознанно выбрал GTK4 и пока не вижу причин его менять.

sqeezy-53
() автор топика
Ответ на: комментарий от Vidrele

Как надстройка-органайзер с мобильной версией над «Электронным дневником» приложение, возможно, имело бы смысл.

В институте у меня

У школьников телефоны забирают на время занятий. Поэтому необходимость мобильной версии сильно переоценена.

Lucky ★★★
()
Ответ на: комментарий от sqeezy-53

Как твоя интеграция с GNOME работает в плазме, крысе, офисной прошивке и будущей макоси?

Ты ведь сам заявил кроссплатформенность. GTK4 действительно кроссплатформенный, но libadwaita реализует прежде всего GNOME HIG и собственный стиль оформления.

В плазме ты получаешь приложение в стиле гнома, которое не обязано соответствовать теме плазмы. В шиндошс интерфейс adwaita вместо родного, в маке вместо cocoa. Да, GTK умеет использовать системные механизмы вроде нативных файловых диалогов, но это не делает весь интерфейс нативным.

Получается, ради интеграции с одним рабочим окружением, ты сознательно жертвуешь визуальной интеграцией с остальными. При этом сохраняешь зависимости от GTK, GLib, GObject и соответствующей инфраструктуры.

Если бы ты разрабатывал приложение исключительно для гнома, выбор был бы совершенно логичным. Но когда заявлены линукс, венда и макось, преимущества адвайты превращаются в довольно специфический компромисс.

И дело вообще не в статической сборке. egui и iced тоже не создают нативные виджеты маздайки или мака. Разница в том, что они не привязывают архитектуру интерфейса к конкретному рабочему окружению линукса.

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

Я понимаю ваши аргументы, но не вижу смысла продолжать доказывать мне преимущества egui или iced. Я уже сделал свой выбор в пользу GTK4 и libadwaita, и он меня устраивает. Переписывать работающий проект только ради другого GUI-фреймворка не планирую.

sqeezy-53
() автор топика

Осталось прикрутить импорт из «Госуслуги — Моя школа»

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

Будешь учиться сам - станешь ценным специалистом.

Учиться - чему?
Написанию кода на условном расте? Но долго ли этот навык будет ценен?
С таким же успехом можно учиться программированию в машинных кодах под IBM 701.

Если бы я был сейчас школьником, то всерьез задумывался бы о профессии сантехника. Работа вонючеватая, конечно, но за то рынок огромный, и спрос на специалистов устойчивый.

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

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

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

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

Почему бы ей самой не принимать архитектурные решения исходя из требований к продукту?

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

Ну вот она приняла, теперь у него логика смешана с интерфейсом GTK. Получилось непортабельное приложение 😑.

Программирование без понимая архитектуры называется.

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

Реальный мир в промпт пока не влезает.

Ну вот составлением требований люди и будут заниматься (некоторое время ещё).

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

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

Расход токенов растёт в геометрической прогрессии при таком подходе.

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

Ну вот она приняла, теперь у него логика смешана с интерфейсом GTK. Получилось непортабельное приложение 😑.

Программирование без понимая архитектуры называется.

Это не про архитектуру как таковую, а про организацию процесса разработки.
Должен быть агент с ролью «архитектор», и должны быть агенты, которые проводят ревью архитектуры.
А перед архитектурой должно быть ещё ревью требований.
А так получилось то, что и должно получиться, когда поскорее приступают к кодингу. Для proof-of-concept, вполне норм.
Это не в ИИ проблема.

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

Должен быть агент с ролью «архитектор», и должны быть агенты, которые проводят ревью архитектуры.

Это в идеально сферическом мире. В реальном архитектура постоянно выдерживает испытания изменениями под новые условия, которых никакое ревью предыдущих планов не предусмотрело.

Я вот прям щас отвлекаюсь на этот чатик от решения, как лучше собирать заказы Озона в грузоместо: сразу по приходу по одному или подкопить и формировать чохом. При этом архитектура, конечно, предусматривает, что, переделывая Озон, я не сломаю работу с ВБ и ЯМ. Но решить за меня, как правильно принять конкретное решение, не может ни ИИ, ни толпа архитекторов. Только сам, постоянно держа в голове формирование списков подбора, сборку по ним, сдачу в СЦ, видеосъемку, споры с ТП Озона... целостную картину. И это маленькое частное решение, еще до кода. Его-то я сам напишу быстрее, чем промпт.

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

ИИшница может сколотить архитектуру под задачу. На перспективу - нужен кругозор и опыт.

Если есть конкретная перспектива, она озвучивается в требованиях.

А если ничего конкретного наперёд неизвестно, то лучшее что можно сделать на уровне архитектуры - это low coupling high cohesion и solid. Это будни гибкой разработки.

Кругозор у ИИ такой, какой ни одному мясному и не снился, это как раз сильная сторона ИИ.

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

Нейросеть не понимает, удобно ли тебе это или нет. Вместо файл-диалога она например ставит просто путь к каталогу или файлу. А если ты попросишь файловое окно, она тебе сунет инопланетянина аля файловый диалог из стима вместо подключения адаптера с поддержкой портала. Т.е. ты должен знать что файловый диалог подключать напрямую это криво, надо использовать кроссплатформенный адаптер, а потом надо использовать XDG портал. Иначе ты будешь как разработчики кикада - пуксреньк не могу сделать дроп объектов в вейланде.

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

архитектура программы - она внутри кампуктера, а не в реальности.

Архитектура программы находится внутри нефункциональных требований. Калькулятор складывает 2+2. Но приложение для одного пользователя, или миллионов это разные решения, стоимость разработки и эксплуатации которых будет отличаться на несколько порядков. ИИ в целом старается не оверинженирить когда его об этом не просят.

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

Нейросеть не понимает, удобно ли тебе это или нет.

Это вы хором с Adamos рассказываете о неявных, подразумеваемых требованиях.
Согласен, что с мясными это прекрасно работает. Но плоть слаба.
Так что это как раз то, от чего предстоит уйти. Научиться превращать невнятно-подразумеваемое в чётко сформулированное.

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

с мясными это прекрасно работает

Ну, точнее, не так уж и прекрасно. Обычна история, когда заказчик, получив прототип решения, осознаёт, что хотел совершенно не того. Но не смог донести свое видение до исполнителя, ни словом не обмолвился о каких-то ключевых моментах, а исполнитель о них сам не догадался. Никто особо не переживает на этот счет, это ж рабочий процесс, просто уточняют заказческие хотелки, и делают следующую версию прототипа. И так по кругу, пока не закончатся деньги и не будут просраны сроки :)

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

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

Как идея инструмента для решения задачи - notepad.exe или nano значительно, значительно лучше.

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

Приведите пример культуры в которой к человеку обращаются как they/them ?

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

Где-то кабинеты закреплены за классом, а учителя приходят и уходят. Где-то кабинеты закреплены за учителями, а ходят между кабинетами уже ученики.

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

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

Научиться превращать невнятно-подразумеваемое в чётко сформулированное.

Тот же Озон последние пару лет меняет правила игры в среднем раз в квартал. Его научи, а?..

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

Adamos ★★★
()
Последнее исправление: Adamos (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.