All streams
Search
Write a publication
Pull to refresh
1
0
Send message

Возможно оффтоп, но может кому-то пригодится, по теме FUSE. В нашей компании мы реализовали зеркало репозиториев для обновления серверов в дата-центрах в виде веб-сервера. Так как основной сервер занимает около 10Тб, то для экономии места на других площадках надо было применять продукты типа Sonatype Nexus, а это может быть дорого, ресурсоемко и не импорто-замещенно. Поискав решения кеширующих ФC я нашел для FUSE реализацию чего-то похожего по смыслу только на Python, но это не наш путь. Поэтому воспользовавшись примерами за пару выходных в свободное от работы время реализовал это на Си. https://github.com/KuzinAndrey/kavcachefs

В компании это пока не внедрили :) Но хотелось бы найти применение, получить какой-то фидбек от нуждающихся, потому что тема действительно интересная.

Никто не мешает распарсить string в int, заодно проверить корректность ввода пользователя.

Либо на крайний случай делать так:

if (choice == "1") {
// case 1
} else if (choice == "2") {
// case 2
} else if (...) {
//....
} else {
// default
}

Иначе в текущем варианте каждый раз придется разращивать if, который должен отрабатывать смысл default

Интересно услышать комментарии Вашего препода, но ошибок и "то как делать не надо" много, поэтому хочется их просто перечислить, чтобы исправили.

  1. Зачем писать комментарии к переменным типа "переменная типа string" ? Это каким-то образом несет смысловую нагрузку ?!

  2. Именование переменных не очень. choice, choice2 и т.д. а по факту в первую попадает дата, во вторую комментарий. А почему не назвать input_date и input_comment ?

  3. Ввод от пользователя никак не обрабатывается, к примеру сразу на основе choice создается путь до файла. А что если туда ввести "..\\..\\Users\\..." можно прочитать/затереть какие-нибудь файлы пользователя ?!

  4. fin.close() надо делать в блоке if (fin.is_open()) когда файл реально открыт, а иначе он и не открыт вовсе.

  5. Зачем сделана куча if (choice == "X"){ ... }. Вас не учили switch/case ?

  6. Если используете bool, то уже и пишите true/false а не 0/1 иначе для чего ?

  7. Во всем мире путь до файла называется path, а у вас way :)

  8. Класс без методов это struct, или это задел на будущее ?

  9. Длинные строки вырывают глаза (все переменные std::string для пути к файлу уехали за скрол). У меня на работе так быдлокодят, задолбали oneliner'ы на килобайт, поубивал бы.

Information

Rating
Does not participate
Registered
Activity