Розробка програмного забезпечення

Питання та відповіді для професіоналів, науковців та студентів, які працюють у життєвому циклі розвитку систем

3
Переконайтеся, що небезпечний код не використовується випадково
Функція f()використовує eval()(або щось настільки небезпечне) з даними, які я створив і зберігав local_fileна машині, на якій працює моя програма: import local_file def f(str_to_eval): # code.... # .... eval(str_to_eval) # .... # .... return None a = f(local_file.some_str) f() безпечно запускати, оскільки струни, які я йому надаю, є моїми власними. …

3
Алгоритм для генерації всіх множин m точок у nxnxn кубічної решітки, які є унікальними за симетрією
Я реалізую алгоритм, який буде досить обчислювально складним, і хочу спробувати переконатися, що я не виконую зайвих робіт. Існує nxnxn кубічна решітка, наприклад, якщо n = 2 це складається з (0,0,0), (0,1,0), (1,0,0), (1,1,0), (0, 1,1), (0,0,1), (1,0,1), (1,1,1). З цієї решітки я буду рекурсивно генерувати всі множини m точок, …

3
Як керувати єдиною відповідальністю, коли відповідальність поділяється?
У мене базові два класи, Operationі Trigger. У кожному є ряд підкласів, які спеціалізуються на певних типах операцій або тригерів. A Triggerможе викликати конкретний Operation. У той час як Operationможе бути ініційований певним Trigger. Мені потрібно написати код, який відображає задану Operationданість Trigger(або навпаки), але я не знаю, куди її …

3
Якщо ви можете використовувати def для перевизначення змінних, як це вважається незмінним?
Намагаючись навчитися Clojure, ви не можете допомогти, але постійно говорять про те, як Clojure стосується незмінних даних. Але ви можете легко змінити змінну за допомогою defправа? Я розумію, що розробники Clojure уникають цього, але ви можете уникнути зміни змінних на будь-якій мові так само. Чи може хтось мені пояснити, як …
10 clojure 

2
Чи є спадщина Пітона "спадковим" стилем успадкування чи композиційним стилем?
З огляду на те, що Python дозволяє отримати багаторазове успадкування, як виглядає ідіоматичне успадкування в Python? У мовах з одинарним успадкуванням, як-от Java, успадкування буде використовуватися, коли можна сказати, що один об'єкт "є-а" іншого об'єкта, і ви хочете поділити код між об'єктами (від батьківського об'єкта до дочірнього об'єкта). Наприклад, ви …

5
Генерування Java-класів за допомогою параметрів значення компіляційного часу
Розглянемо ситуацію, коли клас реалізує одне і те ж основне поведінку, методи тощо, але може існувати кілька різних версій цього класу для різних цілей. У моєму конкретному випадку у мене є вектор (геометричний вектор, а не список), і цей вектор може застосовуватися до будь-якого N-мірного евклідового простору (1 мірний, 2 …

2
Чому програмісти визначають моделі програмування для заміни C / POSIX на паралелізм?
Постачальники нових комп'ютерних архітектур регулярно намагаються впроваджувати нові моделі програмування, наприклад, нещодавно CUDA / OpenCL для GPGPU, і витісняють C / POSIX як інтерфейс управління до паралелізму платформи. (Poss & Koening, AM3: На шляху до апаратного прискорювача Unix для багатьох ядер, 2015) Чому дизайнери архітектури намагаються розробити нові моделі програмування …

3
Властивості заглушки з приватними установками для тестів
У нас є об’єкт public class MyObject{ protected MyObject(){} public string Property1 {get;private set;} public string Property2 {get;private set;} public string Property3 {get;private set;} public string Property4 {get;private set;} public string Property5 {get;private set;} public string Property6 {get;private set;} public string Property7 {get;private set;} public string Property8 {get;private set;} public …

3
Уникаючи конструкторів з багатьма аргументами
Тож у мене є завод, який створює об’єкти різних класів. Усі можливі класи походять від абстрактного предка. Фабрика має файл конфігурації (синтаксис JSON) і вирішує, який клас створити, залежно від конфігурації користувача. Щоб досягти цього, фабрика використовує boost :: property_tree для JSON-розбору. Він проходить птахом і вирішує, який конкретний об’єкт …

2
Чому LGPL вимагає, щоб комбіновані роботи включали копію GPL?
Я читав ліцензію LGPL і виявив вимогу, про яку раніше не знав. У розділі 4 (комбіновані роботи) зазначено: Ви можете передати комбіновану роботу [...], якщо ви також виконаєте кожне з наступного: a) Повідомляйте кожну копію об'єднаного твору про те, що Бібліотека використовується в ній і що Бібліотека та її використання …

2
Заслуги семантики копіювання на запис
Мені цікаво, які можливі достоїнства має копіювання при написанні? Звичайно, я не чекаю особистої думки, але реальні практичні сценарії, де це може бути технічно і практично корисно в відчутному плані. І під відчутним я маю на увазі щось більше, ніж врятувати вас набравши &персонажа. Для уточнення це питання знаходиться в …
10 c++  qt 

3
Який сховище даних найкраще підходить для мого сценарію?
Я працюю над додатком, який передбачає дуже високе виконання запитів оновлення / вибору в базі даних. У мене є базова таблиця (A), яка буде мати близько 500 записів для організації. І для кожного користувача в системі створюється зміна цього об'єкта на основі деяких уподобань користувача і вони зберігаються в іншій …

4
Таблиці пошуку: чи є вони витоком у доменній моделі?
Ви будуєте систему, яка відстежує компанії. Ці компанії мають контакти. Ці контакти часто є фахівцями, які відповідають лише на певні типи питань, наприклад, виставлення рахунків / платежів, продажів, замовлення та підтримка клієнтів. Використовуючи дизайн, керований доменом та архітектуру Onion, я моделював це за допомогою таких типів: Компанія Має контакти Контактна …

2
Чому, здається, у всіх DVCS є нераціональна фобія невмілих змін?
Починаючи з фонового режиму SVN, одна з найважчих речей, до якої можна звикнути під час роботи з системами DVCS, - це те, як вони, як видається, розглядають будь-яку невідбуту зміну, як би бомба, що тикає. У Mercurial, якщо ви намагаєтеся отримати зміни, і у вас є будь-які невідомі зміни в …

2
Для чого нам потрібен екземпляр класу сканерів, щоб отримати вхід на Java?
Java орієнтована на об'єкти, але чому нам потрібно створити об'єкт із класу сканерів, щоб отримати вхід? Не могли next(), наприклад, методи стати просто статичними? C виглядає на мене досить просто, як ви просто використовуєте scanf(), gets()або fgets(). Я впевнений, що розробникам Java є причина створення класу Scanner, але як це …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.