Inżynieria oprogramowania

Pytania i odpowiedzi dla profesjonalistów, nauczycieli akademickich i studentów pracujących w cyklu życia systemów

10
Czy „zawsze inicjowanie zmiennych” nie prowadzi do ukrycia ważnych błędów?
Podstawowe wytyczne C ++ mają zasadę ES.20: Zawsze inicjuj obiekt . Unikaj błędów wcześniej ustawionych i związanych z nimi niezdefiniowanych zachowań. Unikaj problemów ze zrozumieniem złożonej inicjalizacji. Uprość refaktoryzację. Ale ta zasada nie pomaga znaleźć błędów, tylko je ukrywa. Załóżmy, że program ma ścieżkę wykonania, w której wykorzystuje niezainicjowaną zmienną. …
35 c++  c 

2
Dlaczego build.number jest „nadużyciem” wersji semantycznej?
Wyjaśniłem proponowany system kompilacji (Gradle / Artifactory / Jenkins / Chef) jednemu z naszych starszych architektów, a on skomentował mnie, z czym się nie zgadzam, ale nie mam wystarczającego doświadczenia, aby naprawdę się zastanowić. Ten projekt tworzy bibliotekę Java (JAR) jako artefakt do ponownego wykorzystania przez inne zespoły. W przypadku …



4
Jakie struktury danych kryją się za arkuszem kalkulacyjnym?
Chciałbym zrozumieć, w jaki sposób rozwiązany jest arkusz kalkulacyjny (grupa nazwanych lub w inny sposób zidentyfikowanych komórek zawierających wartości lub formuły odnoszące się do innych komórek). Próbowałem przyjrzeć się istniejącym projektom, ale z GUI, serializacją, wydarzeniami itp. Działo się tyle rzeczy, że nie mogłem znaleźć arkusza kalkulacyjnego. Najprościej jak to …

6
Kod, który konwertuje wartość na inną reprezentację, a następnie konwertuje ją z powrotem do miejsca, w którym się zaczął, jest zły, ale jak? [Zamknięte]
Czytałem artykuł o złych praktykach programistycznych . Wspomniał - „Kod jo-jo”, który konwertuje wartość na inną reprezentację, a następnie konwertuje ją z powrotem do miejsca, w którym się zaczęła (np. Konwersja dziesiętnego na ciąg znaków, a następnie z powrotem na dziesiętny lub wypełnianie ciągu, a następnie przycinanie go) Nie rozumiem, …

4
Dodaj test jednostkowy dla każdego nowego błędu
W mojej pracy wszyscy programiści, którzy usuwają błąd, muszą dodać nowy test jednostkowy, który ostrzega przed tego typu błędami (w przypadku, gdy wystąpi ponownie). Jeśli test jednostkowy nie jest możliwy (na przykład problem z projektem strony internetowej), dział kontroli jakości musi utworzyć przypadek testowy, aby go ręcznie sprawdzić. Chodzi o …

7
Jaka jest rola tradycyjnego modułu do śledzenia problemów, gdy używana jest tablica Scrum / Kanban?
Z bardzo wysokiego poziomu wydaje mi się, że istnieją na ogół 2 rodzaje narzędzi do zarządzania projektami: Tradycyjne narzędzia do śledzenia problemów, takie jak Fogbugz, JIRA, BugZilla, Trac, Redmine itp. Karty wirtualnych kart / zwinne narzędzia do zarządzania projektami, takie jak Pivotal Tracker, GreenHopper, AgileZen, Trello itp. Jasne, pokrywają się …


8
Jaki jest najlepszy sposób zaprojektowania strony internetowej, aby była wysoce skalowalna?
W przypadku witryn, które muszą być wysoce skalowalne, takich jak sieci społecznościowe, takie jak Facebook, jaki jest najlepszy sposób zaprojektowania witryny? Czy powinienem mieć usługę internetową, której strona wysyła w celu uzyskania potrzebnych danych? lub Czy witryna powinna bezpośrednio sprawdzać bazy danych? (można to zrobić za pomocą wbudowanych konstruktów językowych …

6
Metodologia dokumentowania istniejącej bazy kodu
Pracuję jako część zespołu nad istniejącą aplikacją, która nie ma wbudowanej dokumentacji ani dokumentacji technicznej. Pracując nad różnymi zgłoszeniami błędów dotyczących aplikacji, napisałem dla siebie coś w rodzaju ścieżki nawigacyjnej - numery błędów w różnych miejscach, aby następny programista mógł skorzystać z tego numeru błędu, aby zobaczyć, co się dzieje. …

2
Czy Node.js jest strukturą? [Zamknięte]
Wciąż widzę rekruterów, programistów itp., Którzy nazywają Node.js jako strukturę. Moim zdaniem nie jest to ignorancja dla tego, czym naprawdę jest Node.js. Często w opisach stanowisk Node.js jest pogrupowany jako biblioteka między AngularJS , React itp. Ogólnie widzę, że jest wprowadzany przez kogoś, kto nie zna różnicy (HR, rekruter itp.). …


8
Zmuś innych programistów do wywołania metody po zakończeniu pracy
W bibliotece w Javie 7 mam klasę, która świadczy usługi dla innych klas. Po utworzeniu instancji tej klasy usługi można wywołać kilka jej doWork()metod (nazwijmy ją metodą). Nie wiem więc, kiedy zakończy się praca klasy usług. Problem polega na tym, że klasa usług używa ciężkich przedmiotów i powinna je zwolnić. …
34 java 

1
DRY niezwiązany, ale prawie identyczny kod
Mam trochę kodu, który jest prawie identyczny, ale używa absolutnie różnych typów, bez dziedziczenia między nimi, na głównej zmiennej. W szczególności piszę analizator z Roslyn dla C # i VB.NET, z następującymi typami: Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax Zastanawiam się, czy, ponieważ kod robi to samo, powinienem zachować jak najbardziej OSUSZANIE, dzieląc jak …
34 c#  design  dry 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.