Inżynieria oprogramowania

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

3
Czy funkcja otrzymująca wartość z innej funkcji jest uważana za czystą?
Próbuję znaleźć sposób obsługi domyślnych wartości zmiennych podczas wykonywania funkcji bez skutków ubocznych i skończyło się na tym, że: function getDefaultSeparator() { return ':'; } function process(input, separator) { var separator = separator || getDefaultSeparator(); // Use separator in some logic return output; } Domyślny separator będzie używany w innych …

1
Czy we wzorcu MVP widok powinien utworzyć instancję obiektu Model na podstawie zawartości interfejsu użytkownika, czy po prostu przekazać tę zawartość jako parametry do prezentera?
Używam wzorca MVP w aplikacji na Androida, którą opracowuję. Mam w zasadzie 4 elementy: AddUserView, do którego można dodać nowego użytkownika: AddUserPresenter UserInfo (pojęcie) UserInfoManager (logika biznesu i menedżer pamięci) Moje pytanie brzmi: Kiedy nacisnę przycisk „Dodaj” w AddUserView, powinien on pobrać treść widoków tekstowych, utworzyć nową UserInfo i przekazać …

2
Synchronizacja z systemem offline
Projektuję system, z którego zsynchronizuję dane biznesowe z urządzenia mobilnego (które mają wbudowaną aplikację), który generuje dane i odsyła je z powrotem na serwer. Każda zsynchronizowana linia generuje określony dziennik biznesowy w bazie danych. Jeśli to, co synchronizuję, generuje dane z datą (w ramach danych synchronizacji) gorszą od daty ostatniej …


2
Stopniowo przenieś bazę kodu do kontenera wstrzykiwania zależności
Mam dużą bazę kodową z wieloma singletonami „anty-wzorcowymi”, klasami użyteczności z metodami statycznymi i klasami tworzącymi własne zależności za pomocą newsłowa kluczowego. To bardzo utrudnia testowanie kodu. Chcę stopniowo migrować kod do kontenera wstrzykiwania zależności (w moim przypadku jest to Guice, ponieważ jest to GWTprojekt). Z mojego zrozumienia zastrzyku uzależnienia, …

4
Jak argumentować przeciwko temu „całkowicie publicznemu” myśleniu o projektowaniu klas obiektów biznesowych
Przeprowadzamy wiele testów jednostkowych i refaktoryzacji naszych obiektów biznesowych i wydaje mi się, że mam bardzo odmienne opinie na temat projektowania klas niż inni koledzy. Przykładowa klasa, której nie jestem fanem: public class Foo { private string field1; private string field2; private string field3; private string field4; private string field5; …

7
Dlaczego nie ma więcej wielojęzycznych języków programowania?
Czy są jakieś języki programowania, które są dostępne i mogą być rozszerzane w więcej niż jednym języku naturalnym? Na przykład wersja angielska z do..whilepętlą, wersja hiszpańska z hacer..mientaspętlą, wersja francuska z faire..pendanti wersja holenderska z doe..terwijl. Jedynym „językiem programowania”, jaki mogę sobie wyobrazić w tego rodzaju implementacjach, jest Microsoft VBA. …


2
Czy `Vector <float> .Equals` powinien być zwrotny, czy powinien być zgodny z semantyką IEEE 754?
Porównując wartości zmiennoprzecinkowe dla równości, istnieją dwa różne podejścia: NaNnie są sobie równe, co odpowiada specyfikacji IEEE 754 . NaNbędąc równym sobie, co zapewnia matematyczną właściwość Refleksyjności, która jest niezbędna do zdefiniowania relacji Równoważności Wbudowane typy zmiennoprzecinkowe IEEE w języku C # ( floati double) są zgodne z semantyką IEEE …

2
Jak zarządzać powiadomieniami o prawach autorskich od autorów projektu licencjonowanego BSD
W LICENSEpliku mamy następującą licencję BSD : Copyright (c) 2006-2016 SymPy Development Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: a. Redistributions of source code must retain the above copyright notice, this list …

3
Jak przydatna jest „prawdziwa” wielkość zmiennych C?
Jedną rzeczą, która zawsze intuicyjnie wydawała mi się pozytywną cechą C (a właściwie jej implementacji, takich jak gcc, clang, ...), jest to, że nie przechowuje żadnych ukrytych informacji obok twoich zmiennych w czasie wykonywania. Rozumiem przez to, że jeśli na przykład chciałbyś mieć zmienną „x” typu „uint16_t”, możesz być pewien, …


2
Zasada segregacji interfejsów: Co zrobić, jeśli interfejsy w znacznym stopniu się pokrywają?
Z Agile Software Development, zasad, wzorców i praktyk: Pearson New International Edition : Czasami metody przywoływane przez różne grupy klientów nakładają się. Jeśli nakładanie się jest niewielkie, interfejsy dla grup powinny pozostać osobne. Wspólne funkcje powinny być deklarowane we wszystkich nakładających się interfejsach. Klasa serwera odziedziczy wspólne funkcje z każdego …

5
Co to znaczy deklarować zmienną zmienną?
Wiele programów niskiego poziomu używa zmiennego słowa kluczowego dla typów do mapowania pamięci i tak dalej, jednak jestem trochę zdezorientowany co do tego, co NAPRAWDĘ robi w tle. Innymi słowy, co to znaczy, że kompilator nie „optymalizuje” adresu pamięci?
9 c++  c  low-level 

1
Wydaje się, że łączenie Pythona nie koncentruje się na przedmiotach, ale na symbolu, w porównaniu do Ruby lub Smalltalk, z powodów projektowych?
Myślałem, że jednym z podstawowych elementów OOP jest to, że mamy przedmioty, którymi jesteśmy zainteresowani, a następnie wysyłamy do nich wiadomości. Może więc wydawać się naturalne, że mam kolekcję przedmiotów i muszę je ułożyć w jeden sznurek, aby to zrobić: ["x", "o", "o"].join(" | ") # joining a tic-tac-toe row …

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.