Re: Тема для розмов
Сьодні мені вперше задобився тип даних char*** аж довелося стрілочками малювати, щоби зрозуміти.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Інше → Тема для розмов
Сторінки Попередня 1 … 650 651 652 653 654 … 691 Наступна
Для відправлення відповіді ви повинні увійти або зареєструватися
Сьодні мені вперше задобився тип даних char*** аж довелося стрілочками малювати, щоби зрозуміти.
Сьодні мені вперше задобився тип даних char*** аж довелося стрілочками малювати, щоби зрозуміти.
і як він вам?
Може краще все ж якось інакше. Якусь інкапсуляцію зробити, фабрику класів, сінгтон вкінці-кінців.
А тепер в мене інші душевні муки... побачив я той кід, написаний індусами... і тепер не знаю, чи варто воно того підвищення
А тепер в мене інші душевні муки... побачив я той кід, написаний індусами... і тепер не знаю, чи варто воно того підвищення
а шо з ним не так?
Може краще все ж якось інакше. Якусь інкапсуляцію зробити, фабрику класів, сінгтон вкінці-кінців.
Я пишу мовою С, а не С++ принципово, тому ООП можливо застовувати, але кишками назовні. Щодо шарів абстракцій, то з ними все в порядку.
Як я дійшов до char***?
Спочатку я послуговувався char*:
char *p = strdup("перша стрічка");
Потім мені довелося створити список стрічок, це вже char**:
char *list[] = {strdup("перша стрічка"), strdup("перша стрічка"), strdup("перша стрічка")}
А тоді мені довелося створити функцію, яка приймає як аргумента вказівник на список стрічок. щоби функція могла працювати зі самим вказівником на список стрічок.
Тобто код має бути десь такий:
DestroyList(char*** ppList, unsigned n);
Але насправді він такий, щоб можна було вивільнювати будь-які вказівники у списку, а не лише ті, що посилаються на стрічки:
DestroyList(void* ppList, unsigned n);
Таким чином, якщо я забуду дописати амперсанд перед змінню, то її функція з'їсть - бо всі типи жере, але в роботі крешнеться:
Правильне застосування функції:
DestroyList(&list, 3);
Неправильне застосування функції:
DestroyList(list, 3);
bvn написав:А тепер в мене інші душевні муки... побачив я той кід, написаний індусами... і тепер не знаю, чи варто воно того підвищення
а шо з ним не так?
Найпростіше, це дике форматування, яке виправляється натисканням кількох кнопок у будь-якому радакторі. А далі починаються 3-поверхові наслідування контролерів там, де це наслідування ні до якого біса не потрібне... Наявність екшенів у бейзконтролері - це якийсь нонсенс... тобто в усіх контролерах проекту, автоматично з'являються ці екшени... можливо, я ще щось не зрозумів про цей проект, але мені важко собі уявити ситуацію, коли б це знадобилося... Те саме в моделях, замість простого наслідування від фреймворкового ORM'у, там на якийсь ні разу мені не зрозумілий ляд набудовані 3-4 рівневі наслідування.
Кількість логіки у вьюхах зашкалює просто... про джаваскрипт я взагалі мовчу, я в нього ще не вникав, окрім того що там в asset'ах лежить кілька десятків різних jquery-плагінів.
Сьогодні мене лиха година зтикнула з тим, з чим я досі не працював - docker. Мені розшарили імедж, сказали запускай, а як запустиш, приходь скажем, що далі робити...
Ну, я навпіл з горем його пульнув... спочатку треба було додати себе у групу docker і ребутнутися (ой боляче), потім вже більш явно вказало, що треба залогінитись.
Короче скачав, а роблю йому ран - воно пише exited (0) 1 second ago
docker logs не показує нічого і я просто в ступорі, що ще я можу подивитися, щоб з'ясувати, чому воно валиться
А якби в мене все вийшло, то був би шанс отримати значне підвищення... і я нарешті відчув би себе справжнім програмістом і людиною, а не рабом на галері...
Ребутнути комп чи як? Це не конче, там же лише достатньо відкрити нову сесію shell.
Якщо не запускається, то треба дивитися лоґи, не варто ворожити. Звісно можу припустити, що бракує контейнерові cmd/entrypoint вказівки. Але ви краще гляньте лоґи і киньте сюди в окрему тему разом з вашою командою, якщо самі не зрозумієте.
bvn написав:Сьогодні мене лиха година зтикнула з тим, з чим я досі не працював - docker. Мені розшарили імедж, сказали запускай, а як запустиш, приходь скажем, що далі робити...
Ну, я навпіл з горем його пульнув... спочатку треба було додати себе у групу docker і ребутнутися (ой боляче), потім вже більш явно вказало, що треба залогінитись.
Короче скачав, а роблю йому ран - воно пише exited (0) 1 second ago
docker logs не показує нічого і я просто в ступорі, що ще я можу подивитися, щоб з'ясувати, чому воно валиться
А якби в мене все вийшло, то був би шанс отримати значне підвищення... і я нарешті відчув би себе справжнім програмістом і людиною, а не рабом на галері...Ребутнути комп чи як? Це не конче, там же лише достатньо відкрити нову сесію shell.
Якщо не запускається, то треба дивитися лоґи, не варто ворожити. Звісно можу припустити, що бракує контейнерові cmd/entrypoint вказівки. Але ви краще гляньте лоґи і киньте сюди в окрему тему разом з вашою командою, якщо самі не зрозумієте.
Ребутнути комп довелося після встановлення докера і додавання себе у групу docker. Воно чомусь ніяк не хотіло мене пускати до /var/run/docker... щось там ще... socket здається. Пермішен денайд та пермішен денайд. А ребутити комп, коли на ньому відкрито 115 віконець, це дуже боляче.
Про логи, я вже писав - що їх ніц немає. Про entrypoint мені підказали, однак це насправді виявився хибний шлях. Трохи допомогло додавання опцій --attach та --interactive, тоді я нарешті добрався до консолі і зміг запустити те, що там всередині потрібно було запустити. А потім виявилось, що фактично все було ок. Треба було лише у vscode встановити remote container і звідти вже отримувати доступ і до терміналу, і до файлової системи.
Коротше, в мене вийшло, якщо з мого наступного допису було не зрозуміло. Тож я вже почав знайомитись з кодом проекту.
FakiNyan написав:bvn написав:А тепер в мене інші душевні муки... побачив я той кід, написаний індусами... і тепер не знаю, чи варто воно того підвищення
а шо з ним не так?
Найпростіше, це дике форматування, яке виправляється натисканням кількох кнопок у будь-якому радакторі. А далі починаються 3-поверхові наслідування контролерів там, де це наслідування ні до якого біса не потрібне... Наявність екшенів у бейзконтролері - це якийсь нонсенс... тобто в усіх контролерах проекту, автоматично з'являються ці екшени... можливо, я ще щось не зрозумів про цей проект, але мені важко собі уявити ситуацію, коли б це знадобилося... Те саме в моделях, замість простого наслідування від фреймворкового ORM'у, там на якийсь ні разу мені не зрозумілий ляд набудовані 3-4 рівневі наслідування.
Кількість логіки у вьюхах зашкалює просто... про джаваскрипт я взагалі мовчу, я в нього ще не вникав, окрім того що там в asset'ах лежить кілька десятків різних jquery-плагінів.
Легенда говорить, що в Індії платять (чи платили раніше) за кількість стрічок в коді і тому замість використання штатної функції часто пишуть свою власну але так щоб ніхто не здогадався що це замінник штатної; крім того важливою особливістю працівників із корінням з Індії (простіше було б сказати - індусів, однак це далеко не завжди буде вірно) є те, що вони мають звичку буквально вгризатися в проект, ставати там так званими "тримачами знань" (knowledge holder / owner), тому пишуть код навмисне таким чином аби було архи-складно в ньому розібратися, документують в публічному confluence мало або так щоб ця документація допомогла лише особисто їм самим згадати пізніше власну логіку. Стикався особисто на одному з проектів - на щастя, це був короткостроковий проект.
за кількість стрічок в коді
Цікаво, чому галичани говорять "стрічка коду" замість "рядок коду". Це такий хитрий росіянізм (від "строчка кода")?
frz написав:за кількість стрічок в коді
Цікаво, чому галичани говорять "стрічка коду" замість "рядок коду". Це такий хитрий росіянізм (від "строчка кода")?
Теж не розумію. Є проблема з двозначністю слова "рядок": line of code - рядок коду і string data type - рядковий тип даних; але тут просто очевидний розв'язок - тип даних зветься стрічкою, це і логічніше (текстові змінні - не рядки в таблиці), і легше запам'ятовується. А от "стрічка коду" - дурнувата калька.
Може запам'ятаю, а може й забуду. Тут вживається багато покручів, в тому числі і багато полонізмів котрі нічим не кращі, не певний що без філологічної освіти можна повністю їх позбутися, так щоб колись підсвідомо не вжити знову.
вже майже середина лютого, а ці дивні люди й досі ходять з дзвоником і стукають у двері
вже майже середина лютого, а ці дивні люди й досі ходять з дзвоником і стукають у двері
У мене ялинкова гілочка 2 роки висіла, таки пожовтіла, довелось оновити.
Нещодавно зрозумів що Windows це в цілому повна срака за винятком деяких речей. Linux краще, але теж відстійчик якийсь. І нам всім потрібно переосмислити будову PC та створити якісь нові ОС. І роль хліба як я гадаю недооцінена в нашому супільстві. Зазвичай хліб є таким собі доповненням до їжі, проте як на мене хліб є самостійним продуктом і, наприклад, зовсімм необовʼязково готувати до мʼяса ще щось якщо на кухні вже є хліб.
Педофілів розвелося, що страшно з біноклем навпроти школи сидіти.
Мати повідомила що Росія почне наступ 16 числа. Каже що сина–контратника її колеги не пустили додому. Я вже почав тренуватися стріляти. Поставив Counter-strike 1.6.
Якщо ви і граєте в симулятор війни, то треба дивитися правді у вічі (почитайте коментарі москалів десь, і ви зрозумієте про що я кажу) - оця гра є більш реалістичним симулятором: