title: Nazywanie funkcji, które pobierają wartość

text: Mam tę osobistą regułę, aby wszystkie nazwy funkcji/metod zaczynać od czasownika. Moim ulubionym czasownikiem dla funkcji lub metod, które uzyskują wartość opartą na jakiejś strukturze danych lub obiekcie, jest _get_. Zastanawiam się, czy to dobry pomysł. Dobrą rzeczą w _get_ jest to, że tak naprawdę nie mówi nic o tym, _jak_ ta wartość jest pobierana, po prostu ją pobierz. Coś w rodzaju _oblicz_ (poza tym, że jest strasznie długie) może zawierać za dużo informacji. Dotyczy to zarówno funkcji, jak i metod, tj.: float get_magnitude(Vector2d vector) { return sqrt(pow(vector.x, 2), pow(vector.y, 2)); } lub float Vector2d::get_magnitude() const { return sqrt(pow(x, 2), pow(y, 2)); } Z drugiej strony czasami kończę z metodami pobierającymi dla właściwości tylko do odczytu. Może mieć sens użycie bardziej znaczącego czasownika dla wszystkiego, co nie tylko zwraca jakąś właściwość i może nie działać w czasie liniowym. Czy istnieje uzasadnienie dla któregoś z tych podejść, czy jest to tylko kwestia gustu?


title: Czy dobrym pomysłem jest umieszczenie deklaracji protokołów dla delegatów w interfejsie kategorii prywatnej?

text: Mam kontroler widoku lub widok, który implementuje metody `delegate` i `dataSource` funkcji `UITableView`. Te metody nie będą używane poza tą klasą. Czy więc dobrym pomysłem jest zrobienie deklaracji `UITableViewDataSource` i `UITableViewDelegate` wewnątrz pliku .m z kategorią prywatną? _Na przykład_ : Zamiast tego: **MyViewController.h** @interface MyViewController:UIViewController<UITableViewDataSource,UITableViewDelegate> {} @end Umieszczam deklarację w kategorii prywatnej, ponieważ nie ma potrzeby, aby inne obiekty wiedziały, czy mój Kontroler widoku używa TableView lub nie. **MyViewController.m** @interface MyViewController()<UITableViewDataSource,UITableViewDelegate> @end i Implementacja w pliku .m jest taka sama w obu przypadkach.


title: Czy posiadanie własnej strony internetowej jest ważne?

text: Jak bardzo jest to konieczne lub ważne? Staram się prowadzić listę blogów lub witryn do obserwowania, ale często otwieram czyjś profil i zauważam, że _nie ma tam niczego_. Czy to naprawdę ważne? Rozumiem, że są różne poziomy programowania (od programistów systemu C/C++ po Railsy, a nawet Haskella i J) i nie każdy pracuje w języku, z którym łatwo się pracuje dla aplikacji internetowych. Nie wszystko jest zorientowane na sieć, jednak wraz z pojawieniem się _wielu_ popularnych, a czasem bezpłatnych usług, nie wydaje mi się nierozsądne oczekiwać, że większość programistów będzie miała osobistą witrynę.


title: Jeśli potrzebujesz więcej niż 3 poziomów wcięcia, masz przesrane?

text: Zgodnie z dokumentem dotyczącym stylu kodowania jądra Linuksa: > Odpowiedzią na to jest to, że jeśli potrzebujesz więcej niż 3 poziomów wcięć, > i tak jesteś przerąbany i powinieneś naprawić swój program. Co mogę wywnioskować z tego cytatu? Poza tym, że zbyt długie metody są trudne do utrzymania, czy trudno je zoptymalizować pod kątem kompilatora? Naprawdę nie rozumiem, czy ten cytat zachęca do lepszej praktyki kodowania, czy jest naprawdę matematycznym / algorytmicznym rodzajem prawdy. Przeczytałem też w jakimś przewodniku po optymalizacji C++, że "podzielenie programu na więcej funkcji poprawia jego projekt" jest często nauczane na kursach CS, ale nie powinno się tego robić zbyt wiele, ponieważ może to przekształcić się w wiele wywołań JMP (nawet jeśli kompilator może sam wbudować niektóre metody).


title: Czy budowanie aplikacji zaczynającej się od GUI może być przydatne?

text: Wydaje się, że trend w projektowaniu i rozwoju aplikacji zaczyna się od „odwagi”: domeny, potem dostępu do danych, potem infrastruktury itp. GUI zwykle pojawia się później. Zastanawiam się, czy zbudowanie najpierw GUI może być przydatne... Moje uzasadnienie jest takie, że budując przynajmniej prototypowy GUI, zyskujesz lepsze wyobrażenie o tym, co musi się wydarzyć za kulisami, a więc jesteś w lepszej pozycji do rozpocząć pracę nad domeną i kodem pomocniczym. Widzę problem z tą praktyką, ponieważ jeśli kod pomocniczy nie został jeszcze napisany, warstwa GUI nie będzie miała wiele do zrobienia. Być może budowanie pozorowanych obiektów lub klas jednorazowych (coś podobnego do testów jednostkowych) zapewniłoby wystarczającą podstawę do początkowego zbudowania GUI. Czy to może być realny pomysł na prawdziwy projekt? Może moglibyśmy dodać GDD (GUI Driven Development) do akronimu stabilnego...


title: Rola linkowania, plików obiektowych i wykonywalnych

text: 1. Czy w przypadku programu w języku C lub asemblera, który nie wymaga żadnej innej biblioteki, konieczne będzie linkowanie? Innymi słowy, czy konwersja z C do Assembly i/lub z Assembly do pliku obiektowego wystarczy bez łączenia? Jeśli linkowanie jest nadal potrzebne, co to zrobi, biorąc pod uwagę, że jest tylko jeden plik obiektowy, do którego nie jest potrzebna biblioteka do linkowania? 2. W związku z tym, jak różne są pliki obiektowe i pliki wykonywalne, biorąc pod uwagę, że w systemie Linux oba mają format pliku ELF? Czy pliki obiektowe to pliki ELF, których nie można uruchomić? Czy istnieją jakieś pliki wykonywalne, które można połączyć z plikami obiektowymi? Jeśli tak, czy oznacza to dynamiczne łączenie plików wykonywalnych z bibliotekami współdzielonymi?


title: Jakie są najlepsze taktyki do ćwiczenia pisania bezwzrokowego?

text: Przez ostatnią chwilę ćwiczę pisanie na klawiaturze i zastanawiam się, czy są jakieś sztuczki, aby przejść dalej. Zacząłem od ~40 wpm, kiedy pisałem sześcioma palcami. Trochę czasu zajęło nauczenie się używania 10 (około tygodnia, kiedy byłem na poziomie ~20 wpm), ale szybko się poprawiłem i teraz piszę z prędkością ~65 wpm. To całkiem nieźle, ale wydaje mi się, że uderzyłem w mur (przejście z ~40 do ~20 i z powrotem do ~65 zajęło około 3 miesiące praktyki z przerwami, ale to było 5 miesięcy temu i nie od tego czasu w ogóle poprawiła się pod względem dokładności lub szybkości). Do tej pory używałem wyłącznie Klavaro. Czy jest coś specjalnego, co musisz ćwiczyć, aby dostać się do zakresu 80-90wpm, czy są jakieś konkretne narzędzia, których potrzebuję, czy po prostu poprawa na tym poziomie zajmuje więcej czasu? (Używam klawiatury qwerty i nie chcę przełączać się na dvoraka, ale myślę, że nadal powinienem być w stanie złamać przynajmniej 80wpm).


title: Jeśli zauważysz błąd oprogramowania i go naprawisz, czy powiesz o tym klientowi?

text: Zauważyłem dzisiaj błąd w aplikacji webowej, którą rozwijam i utrzymuję dla klienta. Poinformowałem klienta, że zauważyłem problem, a po krótkim czasie go naprawiłem i przekazałem mu wszystkie szczegóły. Czy w takich przypadkach zawsze mówisz swojemu klientowi? Nawet jeśli dałoby się naprawić problem i nikomu nie powiedzieć?


title: Termin obejmujący oprogramowanie i dane w systemie

text: Piszę opis/przewodnik/wiki „szkieletu oprogramowania open source do łatwej integracji i wykorzystania zbiorów danych, algorytmów, narzędzi i zasobów obliczeniowych”. Czuję, że struktura integracji oprogramowania brzmi zwięźle i na temat, ale chcę podkreślić, że może również niezależnie integrować i przetwarzać dane samodzielne (tj. dane oznaczające coś w rodzaju kolumn liczb w pliku tekstowym, nawet jeśli ten konkretny przykład nie jest technicznie poprawne). Równie dobrze może również skorzystać z okazji, aby nauczyć się nowej nomenklatury programistycznej. Pytam więc - czy jest jakiś termin, który obejmuje zarówno dane, jak i oprogramowanie w architekturze oprogramowania?


title: Jak mogę całkowicie samodzielnie uczyć się informatyki?

text: Będąc całkowicie samoukiem programisty, chciałbym, abym mógł się doskonalić poprzez samouczenie się na kursie informatyki prowadzonym do typowego absolwenta CS. Znalezienie różnych zasobów w Internecie było łatwe, istnieją oczywiście **warunki otwartych kursów MIT** oraz kursy Coursera ze Stanford i innych uniwersytetów. Istnieje wiele innych otwartych zasobów rozsianych po Internecie i kilka dobrych książek, które są wielokrotnie polecane. Dużo się uczę, ale moja nauka jest mocno rozdrobniona, co bardzo mnie wkurza. Chciałbym, gdybym gdzieś znalazł ścieżkę, którą powinienem podążać i stos, do którego powinienem się ograniczyć, aby mieć pewność, jakie **_podstawowe_** działy informatyki studiowałem, a następnie systematycznie podchodzić do tych, które nie. Problem z Wikipedią polega na tym, że nie mówi ona, co jest istotne, ale nalega, aby była kompletną referencją. ** Artykuły otwarte MIT ** dla informatyki i elektrotechniki. ma ogromną listę kursów również nie mówiącą o tym, które kursy są niezbędne, a jakie opcjonalne, zgodnie z zainteresowaniami / wymaganiami osoby. Nie znalazłem żadnej wzmianki o kolejności, w jakiej należy studiować różne przedmioty. Chciałabym stworzyć listę, którą mógłbym śledzić, taką jak ta fikcyjna TEMAT WYKONANE Wprowadzenie do informatyki * Wprowadzenie do algorytmów * Matematyka dyskretna Adv. Matematyka dyskretna Struktury danych * Adv. Algorytmy... Jak widać, nie mam pojęcia, z jakich konkretnych przedmiotów składa się informatyka. Byłoby to niezwykle pomocne, nawet jeśli ktoś wskazałby podstawowe kursy z MIT Course ware ( + podstawowe przedmioty nieobecne na MIT OCW) w zalecanej kolejności studiów. Wymienię posty, przez które już przeszedłem (i nie dostałem tam tego, czego szukałem) Program nauczania informatyki dla kierunku nie-CS? \- górna odpowiedź mówi, że nie warto studiować CSE Jak programista samouk może dowiedzieć się więcej o informatyce? \- wskazuje na MIT OCW Studiowanie informatyki - w co się pakuję? Przegląd informatyki, programowanie


title: Mój konsultant Cassandra mnie opuścił i teraz myślę o powrocie do mysql

text: Prowadzę średniej wielkości społeczność i jakiś czas temu zacząłem rozwijać funkcje społecznościowe, takie jak śledzenie, aktualizacja statusu, tablica itp. Z jakiegoś powodu pomyślałem, że Cassandra jest odpowiednim narzędziem do pracy, więc szukałem online programisty Cassandra i ja znalazł bardzo utalentowanego. Na nieszczęście w trakcie prac deweloper odszedł (za dużo pracy), więc jestem tu z bardzo fajną klasą, bardzo fajnym demo, ale dużo obaw, że nie poradzę sobie z podstawowymi sprawami, takimi jak kompaktowanie, skalowanie itp. Najbardziej obawiam się, że wejdę do Internetu z całym tym chłodem, a potem strona będzie niedostępna przez wiele godzin lub dni. Konsultant mysql (też bardzo utalentowany) powtarza mi, że powinienem trzymać się MySQL, który znam dość dobrze, a jeśli coś jest nie tak, poradzimy sobie. W takim przypadku powinienem wziąć klasę stworzoną dla cassandry i streścić ją dla Mysql. Moje pytanie brzmi: czy powinienem znaleźć innego programistę/konsultanta i trzymać się Cassandry, ponieważ w sprawach społecznościowych jest to zdecydowanie najlepsze narzędzie do pracy, czy też powinienem posłuchać konsultanta MySQL i wrócić do Mysql? Około 15k logowań dziennie Średnio 20 akcji na użytkownika Średnio 6 obserwujących x użytkownik (Są to aktualne statystyki, ale oczywiście chciałbym je maksymalnie zwiększyć.)


title: Fragment kodu do testu umiejętności debugowania rozmowy kwalifikacyjnej?

text: Może ktoś ma kawałek kodu, który sprawdzi się jako test umiejętności debugowania? Damy możliwość korzystania z Visual Studio, więc powinno to być trudne do rozwiązania poprzez ręczne śledzenie i pokazanie nam, że kandydat jest naprawdę dobry w debugowaniu.


title: Jakie rzeczy należy uwzględnić w licencji itp., gdy używasz w swojej aplikacji niektórych projektów/narzędzi typu open source?

text: **Co należy wziąć pod uwagę w licencji itp., gdy używasz jakichś projektów/narzędzi typu open source** w swojej aplikacji (w moim przypadku konkretnie w aplikacji/witrynie webowej) ? Jakich warunków należy szukać w licencji iw jaki sposób mogą one wpłynąć na mój przyszły biznes w dziedzinie technologicznej, finansowej lub jakiejkolwiek innej? W moim przypadku używam kilku narzędzi open source, takich jak niektóre produkty Google open source, niektóre z Apache i kilka innych.


title: Jak zbudować dobrą warstwę usług w ASP.NET?

text: Przejrzałem kilka pytań, technologii budowania dobrej warstwy usług, ale mam kilka pytań dotyczących tego, z którymi potrzebuję pomocy. Najpierw garść informacji jakie mam wymagania. Obecnie mamy wiele aplikacji internetowych, które komunikują się ze sobą w sposób przypominający pajęczynę (wszystkie komunikują się ze sobą w mylący sposób za pośrednictwem usług internetowych i danych z baz danych). * Chcemy to zmienić, aby wszystkie aplikacje przechodziły przez warstwę usług, w której możemy więcej pracować z pamięcią podręczną i hermetyzować wspólne funkcje i nie tylko. * Chcemy, aby ta warstwa miała również internetowy interfejs API, aby klienci innych firm mogli korzystać z informacji z usługi. Problem, który widzę, polega na tym, że jeśli budujemy warstwę usług za pomocą, powiedzmy, MVC4 Web API, nie musimy komunikować się między aplikacją za pomocą webAPI, co oznacza, że musimy konstruować adresy URL i korzystać z JSON/Xml. To nie brzmi zbyt efektownie. Zakładam, że lepszą metodą byłaby praca z jednostkami i WCF w celu komunikacji między aplikacją, ale wtedy możemy stracić magię internetowego interfejsu API? Tak więc pytanie brzmi, czy istnieje sposób na wykorzystanie warstwy usług zarówno jako Web API (JSON/XML), jak i jako bardziej zaplecza warstwy usług z encjami. Jeśli jesteśmy zmuszeni do korzystania z 2 różnych warstw usług, być może będziemy musieli powielić niektóre funkcjonalności i inne złe rzeczy. Mam nadzieję, że pytanie jest wystarczająco jasne i zapytaj, czy potrzebujesz więcej informacji.


title: Kiedy należy używać typu danych XML w SQL Server?

text: Kiedy należy używać typu danych XML w Microsoft SQL Server?


title: Numer kompilacji podczas obsługi poprzedniej wersji

text: Zajmuję się tworzeniem i utrzymaniem aplikacji internetowej, która jest używana wewnętrznie w mojej pracy. Jestem jedynym programistą, więc tak naprawdę nie używam oddziałów; wszystko dzieje się na bagażniku. Zwolnienia tagów w Git są tworzone z datą i godziną i zaczynam przechodzenie do używania numeru kompilacji zamiast daty/godziny. W instancji produkcyjnej aplikacji (która jest po prostu znacznikiem na linii głównej) wykryto błąd, który należy jak najszybciej naprawić. W międzyczasie rozwijam nowe funkcje, ale nie są one gotowe do dystrybucji. Naprawienie błędu jest łatwe: wyewidencjonuj tag do nowej gałęzi, napraw, opublikuj. Jednak w takiej sytuacji **jaki powinien być numer kompilacji poprawki**? Jeśli zastosuję się do istniejącej strategii kompilacji polegającej na zwiększaniu numeru seryjnego, moje numery kompilacji będą np. 1234: produkcja 1235: rozwój (z nowymi funkcjami) 1236: poprawka produkcyjna (nie ma nowych funkcji), która wydaje się nie mieć sensu. Alternatywnie, zwiększenie numeru kompilacji tagu produkcyjnego prowadziłoby m.in. 1234: produkcja 1235: rozwój (nowe funkcje) 1235: poprawka produkcyjna, która niweczy cel numerów kompilacji (jednoznacznie identyfikuje konkretną kompilację). Inną opcją jest użycie identyfikatora wersji Git, ale nie są one dokładnie czytelne.


title: Co zmienilibyście w Javie, gdybyście mieli szansę?

text: Po przeczytaniu tego posta o C# bardzo ciekawie jest usłyszeć, co uważasz za złe w Javie i co chciałbyś zmienić? Obstawiam "wywołaj super|to musi być pierwsza instrukcja w konstruktorze".


title: Najlepszy sposób na łatwą pracę z bazą danych w programach zdalnych?

text: W Database 101 nauczyłeś się nigdy nie rozpowszechniać poufnego hasła bazy danych razem z programem, ponieważ wszystko, co trzeba zrobić, to odtworzyć program, znaleźć miejsce, w którym faktycznie potrzebujesz oryginalnego hasła do uwierzytelnienia, a następnie wyświetlić/wydrukować tę linię. Jednak gdy masz wiele zdalnych programów, które muszą komunikować się z centralną bazą danych, co robisz? Moje hackowe rozwiązania wykorzystywały PHP, mnóstwo zmiennych `GET` i JSON. Wysłałbym żądanie do serwera z ustawionym trybem i parametrami, a następnie przeanalizowałem dane wyjściowe JSON. Był błędny, nie do końca bezpieczny (tylko spowalniał atakującego), ponieważ nie miałem żadnego mechanizmu rejestracji, trudny do skalowania i sprawił, że wszystkie istniejące ORM były bezużyteczne. Poza tym próbował wymyślić na nowo SSH lub SSL, a nie coś zbyt mądrego. Jaka jest alternatywa? Jakie są inne opcje, które mogą zapewnić bezpieczeństwo bazy danych, jednocześnie ułatwiając mi to?


title: Czy to, jak firma zarabia pieniądze, jest jednym z najważniejszych czynników determinujących w ich środowisku pracy, kulturze itp.?

text: Jest to punkt widzenia, który ostatnio zacząłem sobie uświadamiać na temat niektórych firm, dla których pracowałem. Mieli własne oprogramowanie, które opracowali wewnętrznie, ale większość skupiono na zbudowaniu osobistego zespołu sprzedaży, aby rozpowszechniać swoje produkty w firmach w całym kraju. Uważam, że firmy, które są wyłącznie „online”, co oznacza, że ich źródło przychodów pochodzi z transakcji online, w których nie ma „twarzy” firmy dla klienta, miałyby inną kulturę pracy. Ciekawe, czy ktoś pracował dla obu typów firm i zauważa różnicę. Sam mam nadzieję, że zajmę się programowaniem kontraktowym i zorientuję się, że firmy, które nie muszą zatrudniać pracowników sprzedaży i tego typu rzeczy, będą bardziej skoncentrowane na technologii, a może nawet będą skłonne być elastyczne w przypadku częściowej telepracy itp.


title: Najlepszy sposób na transport danych odpowiedzi z żądania AJAX?

text: Niektóre możliwości to fragmenty JSON, XML, HTML i/lub Javascript. Demokratyczna odpowiedź na to pytanie brzmi: „to zależy od sytuacji”, ale szukam, dlaczego jeden może być lepszy od innych.


title: czy klasa odwołuje się do statycznego wzorca anty w pryzmacie?

text: Mam aplikację i moje podejście do projektowania wygląda tak: class Manager { public int State; statyczny Menedżer _instance = null; public static Manager Instance { get { return _instance; } set { if (_instance == wartość) return; _instancja = wartość; } } public Manager() { Stan = 0; Instancja=to; } } class Module1 { public void GetState() { Console.WriteLine(Manager.Instance.State); } } class Module2 { public void GetState() { Console.WriteLine(Manager.Instance.State); } } class Module3 { public void GetState() { Console.WriteLine(Manager.Instance.State); } } Klasa menedżera już zarejestrowana w Bootstrapperze jak : protected override void ConfigureContainer() { base.ConfigureContainer(); Container.RegisterType<Manager>(nowy ContainerControlledLifetimeManager()); } protected override void InitializeModules() { Manager man= Container.Resolve<Manager>(); } Pytanie brzmi, czy muszę zdefiniować mój obiekt menedżera jako statyczny w swoim polu, aby móc osiągnąć jego stan? Czy to jest anty wzór lub źle wpływa na wydajność?


title: Jak radzić sobie z kierownikami projektów, którzy mikrozarządzają?

text: Być może jestem po prostu naiwny, ale kiedy próbuję rozszyfrować ścianę zadań, które mam wykonać w ciągu tygodnia, po prostu nie mogę przestać myśleć, że ktokolwiek tworzy harmonogram projektu, musi przejść szkolenie wyrównawcze podstawowe zarządzanie projektami. Na przykład dzisiaj przydzielono mi 13 zadań, najkrócej trwające 0,13 dnia (domyślna metryka czasu w programie Microsoft Project) i najdłużej trwające 0,75 dnia. Nie mogę pomóc, ale myślę, że jest to rażące planowanie projektów mikrozarządzania w odstępach poniżej 10 minut. Efekty zarządzania stają się widoczne w przypadku pominięcia zadań, przydziału zasobów przekraczającego pojemność dwukrotnie w niektórych momentach oraz spędzania więcej czasu na oczyszczaniu zadań i zastanawianiu się, co będzie dalej, niż na rzeczywistej pracy. Jak przekonać kierownika projektu do tworzenia zadań o dłuższym czasie trwania i do zobaczenia szerszego obrazu? ![Mikrozarządzanie == szalone harmonogramy?](http://i.stack.imgur.com/pV1TT.jpg)


title: Word dla autora, dodawania, edytowania lub usuwania?

text: Przypuśćmy, że mam tabelę SQL o nazwie `websiteArticle` zawierającą artykuły uporządkowane według daty w różnych kategoriach. Posiada nazwy pól `id`, `category`, `date`, `temate`, `body`. W ramach najlepszej praktyki dołączam również `created`, który jest automatycznie uzupełniany przez bazę danych datą/godziną wstawienia artykułu do tabeli. Dołączam również `modified` (data/godzina) i `modifiedBy` (`id` z `websiteUser`), które wypełnia aplikacja. Podoba mi się to, z wyjątkiem tego, że czasami mam również pole do usunięcia, które jest datą/godziną, które jest wypełniane, a nie całkowite usuwanie rekordu. Dla zwięzłości nie chcę oddzielnego pola `deletedBy`. Nie jest to również potrzebne, ponieważ mamy bardziej szczegółowy dziennik. Jednak dla wygody chcę zalogować użytkownika, który go usunął, nadpisując odwołanie do użytkownika, który je zmodyfikował. Mógłbym zamienić `modifiedBy` na `user` i aktualizować go za każdym razem, gdy rekord jest `tworzony`, `zmodyfikowany` lub `usunięty`. Niestety `user` jest niejednoznaczny, ponieważ może to być przypisany `użytkownik`, a rekord mógł zostać zmodyfikowany przez innego `użytkownika`. Mam więc pola daty/czasu `utworzone`, `zmodyfikowane`, `usunięte`. Zastanawiam się, jaka byłaby odpowiednia nazwa pola dla użytkownika odpowiedzialnego za to samo. Coś takiego jak „autor”, tyle że wydaje się, że dotyczy tylko „utworzonego”. Czy istnieje mniej dwuznaczne słowo, które pasuje do wszystkich trzech? Przeszukałem słownik, ale nie znalazłem lepszych wyników.


title: Dlaczego Android stworzył emulator, a nie symulator?

text: **Od** http://stackoverflow.com/questions/4544588/difference-between-iphone-symulator-and-android-emulator Różnica między emulatorami a symulatorami polega na tym, że emulatory naśladują środowiska programowe i sprzętowe występujące na rzeczywistych urządzeniach. Z drugiej strony symulatory tylko naśladują środowisko oprogramowania; w przeciwnym razie mają dostęp do wszystkich zasobów sprzętowych systemu hosta, takich jak miejsce na dysku, pamięć i szybkość procesora. Apple zawsze podkreśla wagę testowania urządzeń, ponieważ iPhone Simulator nie emuluje procesora iPhone'a, napędu dysku, ograniczeń pamięci i tak dalej. Prawie nigdy nie otrzymujesz ostrzeżeń dotyczących pamięci, chyba że komputer Mac ma problemy z samodzielnym zarządzaniem zasobami, chyba że symulujesz (ponownie) ostrzeżenia dotyczące pamięci z pozycji menu Symulatora. Chociaż emulator Androida emuluje procesory ARM i określony sprzęt, nadal nie radzi sobie dobrze z dopasowaniem wydajności procesora. Będąc emulatorem, może dobrze dopasować zużycie pamięci, może dobrze emulować niektóre proste urządzenia, ale zawodzi, gdy urządzenia stają się skomplikowane, na przykład mobilne dekodery GPU i sprzętowe. A ponieważ logika emulacji działa na tłumaczeniu każdej instrukcji ARM na instrukcję X86 i wykonywaniu jej wieprza wydajności, a projekt nie jest dokładny w cyklu. **Moje pytanie:** Dlaczego Android stworzył emulator, a raczej symulator?


title: Jak przekonać szefa (i innych deweloperów) do używania/rozważania dyskretnego JavaScriptu?

text: Jestem całkiem nowy w naszym zespole programistów. Potrzebuję mocnych argumentów i/lub przykładów "pułapek", aby mój szef w końcu zrozumiał zalety dyskretnego JavaScriptu, tak aby on i reszta zespołu przestali robić takie rzeczy: <input type="button" class ="bow-chicka-wow-wow" onclick="send_some_ajax(); return false;" value="kliknij mnie..." /> i <script type="text/javascript"> function send_some_ajax() { // wiązka kodu... ALE za pomocą jQuery !!! } </script> Zaproponowałem użycie dość popularnego wzorca: <button id="ajaxer" type="button">kliknij mnie...</button> i <script type="text/javascript"> // od # ajaxer jest również dostarczany przez ajax, wiążę zdarzenia z dokumentem // -> nie najlepsza praktyka, ale nie o to chodzi.... $(document).on('click', '#ajaxer', function(ev) { var $elem = $(to); ev.preventDefault(); }); Powodem, dla którego mój szef (i inni) nie chce stosować tego podejścia, jest to, że kontrola zdarzeń w FireBug (lub Chrome Dev Tools) nie jest już prosta, np. z <input type="text" name="somename" id="someid" onchange="performChange()"> może natychmiast zobaczyć, jaka funkcja jest wykonywana przy zdarzeniu zmiany i przejść do niej w **_wielkim pełnym pliku JS kodu spaghetti_**. W przypadku Unobtrusive JavaScript widziałby tylko: <input type="text" name="somename" id="someid" /> i nie ma pojęcia, czy jakieś zdarzenia, jeśli w ogóle, były powiązane z tym elementem i która funkcja zostanie uruchomiona. Szukałem rozwiązania i znalazłem je: $(document).data('events') // lub .. $(document).data('events').click ale to "podejście" spowodowało, że zajęło " zbyt długo...”, aby dowiedzieć się, która funkcja uruchamia się na którym zdarzeniu, więc powiedziano mi, żebym przestał wiązać takie zdarzenia. Proszę Cię o kilka przykładów lub mocnych zalet lub jakichkolwiek innych sugestii na temat „Dlaczego powinniśmy używać UJS” **UPDATE:** sugestia „zmiany pracy” nie jest idealnym rozwiązaniem. **UPDATE 2:** Ok, _Nie tylko zasugerowałem użycie wiązania zdarzeń jQuery, **tak zrobiłem**._ Po tym, jak napisałem całą delegację zdarzeń, szef przyszedł do mnie i zapytał, dlaczego Przeprowadzam delegowanie zdarzeń z innym podejściem i podejściem, którego **_nie wiedział_** Wspomniałem o kilku oczywistych korzyściach, takich jak - Jest 15 pól wejściowych i wszystkie mają zdarzenie `onchange` (nie tylko, niektóre z nich mają także `onkeyup`) Tak więc bardziej pragmatyczne jest napisanie tego rodzaju delegacji zdarzeń dla WSZYSTKICH pól wejściowych, zamiast robienia tego 15 razy, zwłaszcza jeśli cały HTML będzie renderowany za pomocą echo -> `echo' w PHP.. <input type="text" id="jakiś" ... />...'`


title: Jaki jest kolor przeciwny do „zielonego” dla rodzimego wątku?

text: Symulowane wątki są znane jako „zielone wątki” w języku programowania. Są one porównywane do „natywnych wątków” zapewnianych przez system operacyjny, ale czy istnieje analogiczny kolor dla natywnych wątków i co to jest?


title: Jak znacząco poprawić wydajność Javy?

text: Zespół LMAX ma prezentację o tym, jak byli w stanie wykonać 100 tys. TPS przy opóźnieniu mniejszym niż 1 ms. Wsparli tę prezentację blogiem, dokumentem technicznym (PDF) i samym kodem źródłowym. Niedawno Martin Fowler opublikował doskonały artykuł na temat architektury LMAX i wspomina, że są teraz w stanie obsłużyć sześć milionów zamówień na sekundę, i podkreśla kilka kroków, które zespół podjął, aby zwiększyć wydajność o kolejny rząd wielkości. > Jak dotąd wyjaśniłem, że kluczem do szybkości logiki biznesowej > Procesor robi wszystko sekwencyjnie, w pamięci. Samo zrobienie tego (i > nic naprawdę głupiego) pozwala programistom na pisanie kodu, który może przetworzyć 10K > TPS. > > Następnie odkryli, że koncentracja na prostych elementach dobrego kodu może > przenieść to do zakresu 100 000 TPS. Wymaga to tylko dobrze rozplanowanego kodu > i małych metod - zasadniczo pozwala to Hotspotowi na lepszą optymalizację > i dla procesorów na bardziej wydajne buforowanie kodu w trakcie > działania. >> Potrzeba było trochę więcej sprytu, by podnieść się o kolejny rząd wielkości. Jest kilka rzeczy, które zespół LMAX uznał za pomocne. Jednym z nich było > napisanie niestandardowych implementacji kolekcji Java, które zostały > zaprojektowane tak, aby były przyjazne dla pamięci podręcznej i > były ostrożne ze śmieciami. > > Inną techniką osiągania tego najwyższego poziomu wydajności jest zwracanie > uwagi na testowanie wydajności. Od dawna zauważyłem, że ludzie dużo mówią > o technikach zwiększania wydajności, ale jedyną rzeczą, która naprawdę robi różnicę, jest jej przetestowanie. Fowler wspomniał, że znaleziono kilka rzeczy, ale wspomniał tylko o kilku. Czy istnieją inne architektury, biblioteki, techniki lub „rzeczy”, które pomagają osiągnąć taki poziom wydajności?


title: Najlepsza metoda na wdrożenie filtrowanego wyszukiwania

text: Chciałbym Cię zapytać o Twoją opinię, jeśli chodzi o wdrożenie filtrowanego formularza wyszukiwania. Wyobraźmy sobie następujący przypadek: * 1 duża tabela z dużą ilością kolumn * Może być ważne, aby powiedzieć, że ten serwer SQL Musisz zaimplementować formularz do wyszukiwania danych w tej tabeli, a w tym formularzu będziesz mieć kilka pól wyboru, które pozwalają spersonalizować to wyszukiwanie. Teraz moje pytanie brzmi, który z poniższych sposobów powinien być najlepszym sposobem na zaimplementowanie wyszukiwania? 1. Utwórz procedurę składowaną z zapytaniem w środku. Ta procedura składowana sprawdzi, czy parametry są podane przez aplikację iw przypadku ich nie podania w zapytaniu zostanie umieszczony symbol wieloznaczny. 2. Stwórz dynamiczne zapytanie, które jest zbudowane zgodnie z tym, co daje aplikacja. Pytam o to, ponieważ wiem, że SQL Server tworzy plan wykonania podczas tworzenia procedury składowanej, aby zoptymalizować jej wydajność, jednak tworząc dynamiczne zapytanie wewnątrz procedury składowanej, czy poświęcimy optymalizację uzyskaną przez plan wykonania? Proszę powiedz mi, jakie byłoby najlepsze podejście w Twojej opinii.


title: Jaka jest różnica między marszałkiem a serializatorem?

text: ...i rozszyfrowywanie/deserializowanie? Wyjaśnienie Wikipedii nie pozostawia mnie mądrzejszego! Jestem programistą Java, na wypadek gdyby terminologia była używana inaczej w różnych językach.


title: Przenieś ślady do pamięci współdzielonej

text: Istnieje zadanie śledzenia aktywności wykonywania wątków do analizy pośmiertnej z minimalnym wpływem na opóźnienia/wydajność. Śledzenie stosu może nie wystarczyć do zrozumienia przyczyny awarii. Początkowo zamierzałem przydzielić trochę bloku pamięci dla każdego wątku i umieścić w nim bufor cykliczny. Więc nie byłoby żadnych wyścigów danych i mogę odczytać zawartość tych buforów w zrzucie rdzenia. Ale nie jest to szczególnie wygodne, ponieważ czasami zrzut pamięci nie jest dostępny (proces działa na maszynie, do której nie mam zbyt dużego dostępu). Zachowanie wszystkiego bez zmian, ale logowanie komunikatów śledzenia do pamięci współdzielonej byłoby nieco lepsze, ponieważ te bufory nie zostaną utracone wraz z awarią aplikacji, a inna aplikacja (która odczytuje bufory współdzielone - nazwijmy to trace-server) może zapewnić dostęp do śladów po awarii głównej aplikacji . Czy to dobry pomysł? Chociaż myślę, że to zadziała, ale czy uważasz, że można wpaść w te wszystkie kłopoty? Czy widziałeś, jak ktoś to robi?


title: Kontrola tożsamości i dostępu w internetowym interfejsie API a WCF

text: Nasz zespół zamierza wprowadzić implementację Web API, MVC/ASP.NET w naszym SOA. Mam trudności z owinięciem głowy wokół tożsamości i kontroli dostępu w porównaniu z WCF. WCF ma **Windows, X.509, UserName i WS-Trust** (prawdopodobnie więcej, ale to jest to, z czym jestem zaznajomiony), internetowy interfejs API MVC wydaje się mieć wbudowaną tylko tożsamość opartą na aplikacji internetowej i kontrolę dostępu: **Formularze internetowe, Windows i WS-Federacja**. Czy ktoś stworzył interfejsy API sieci Web przy użyciu MVC, które implementują protokoły, które ma WCF? Czy należy to w ogóle zrobić? Czy próbuję używać Web API w sposób, w jaki nie powinno być?


title: Unikanie boilerplate’u w klasach PHP

text: Pracuję nad kodem PHP i w miarę jak rośnie on coraz bardziej zmęczony powtarzaniem tego samego standardowego wzorca raz za razem: class BolerPlate { protected $property1; chroniona $właściwość2; ... funkcja publiczna __construct ($właściwość1, $właściwość2, ...) { $to->właściwość1 = $właściwość1; $to->właściwość2 = $własność2; ... } } Tak więc ponownie wpisuję tutaj nazwę każdej właściwości 4 (!) razy, aby uzyskać standardową konfigurację! W każdej klasie! Dla mnie nie wygląda elegancko ani SUCHY. A ponowne wpisywanie tych samych nazw stwarza więcej możliwości wystąpienia błędów. Zastanawiam się, czy istnieje bardziej elegancki sposób lub najlepsze praktyki, aby uzyskać tę samą konfigurację z kodem łatwiejszym dla oczu :) EDIT. Mam na myśli pewien rodzaj metody fabrycznej, w której mogę podać listę właściwości tylko raz. Lub używając zmiennych zmiennych i iterować po wszystkich właściwościach?


title: Apache-2.0 CLA niezgodny z wychodzącą licencją MIT/BSD/GPLv2?

text: Kilka projektów open source obecnie zbiera umowy licencyjne współautorskie Apache-2.0, ale rozpowszechnia oprogramowanie na licencji takiej jak MIT, BSD lub GPLv2. Zgodnie z poniższą tabelą (od Davida Wheelera), te licencje są niezgodne z licencją Apache-2.0. ![tutaj podaj opis obrazu](http://i.stack.imgur.com/DRGMY.png) FSF wyjaśnia, dlaczego Apache-2.0 jest niekompatybilny z GPLv2: > Należy pamiętać, że ta licencja nie jest zgodna z GPL w wersji 2, ponieważ > ma pewne wymagania, których nie ma w tej wersji GPL. Obejmują one > pewne postanowienia dotyczące wygaśnięcia patentu i odszkodowania. Zgodnie z tą samą logiką, Apache-2.0 jest niekompatybilny z liberalnymi licencjami, takimi jak MIT i BSD, które również nie mają tych klauzul patentowych. CLA Apache-2.0 nie jest identyczne z Licencją Apache-2.0, ale klauzula wygaśnięcia patentu wydaje się być równoważna modulo z rolami Współtwórca->Projekt kontra Projekt->Użytkownik. CLA definiuje licencję „przychodzącą” dającą określone uprawnienia do projektu. Jeśli warunki CLA są zgodne z licencją wychodzącą, to jedynie formalizuje to, co doradca Red Hat, Richard Fontana, nazywa „inbound=outbound”. Jeśli CLA przyznaje _więcej_ uprawnień do projektu, niż wynika to z licencji wychodzącej (np. Apache-2.0 inbound, GPLv3 outbound), wtedy staje się „maksymalistycznym” CLA, które są uważane za szkodliwe przez osoby takie jak Fontana i Bradley Kuhn, ze względu na asymetryczna relacja między kierownictwem projektu a współtwórcami. Ale moje pytanie dotyczy projektów robiących odwrotnie, dystrybuujących oprogramowanie na licencji, która jest _bardziej liberalna_ niż CLA. Zostałem zapewniony, że prawnicy korporacyjni przejrzeli CLA, ale nie udało mi się uzyskać wyjaśnienia, dlaczego uważają, że połączenie z licencją wychodzącą jest w porządku. **Czy ktoś zna teorię prawną, zgodnie z którą CLA definiujące licencję przychodzącą, która jest niezgodna z licencją wychodzącą, byłaby akceptowalna?** Myślę, że projekt może brać odpowiedzialność poprzez dystrybucję na warunkach, na które nie ma pozwolenia (zgodnie z CAO). Korzystanie z żadnego CLA byłoby bezpieczniejsze dla projektu ze względu na konwencję „inbound=outbound”, która może być wyraźnie określona przez DCO.


title: Najlepsze praktyki dotyczące walidacji wiadomości XML

text: Dwa systemy komunikują się za pomocą komunikatów XML w kolejce komunikatów, a każda odebrana wiadomość musi zostać zweryfikowana pod kątem struktury, zawartości i logiki biznesowej przed przetworzeniem. Schemat XML oferuje walidację struktury i treści z ograniczeniami typu danych, wymaganymi polami, strukturami wyboru i tym podobnymi. Ale to oczywiście prowadzi mnie tylko do połowy. W systemie, nad którym aktualnie pracuję, wykonujemy pozostałą walidację poprzez deserializację wiadomości do struktury obiektowej i walidację kontekstu za pomocą dedykowanej biblioteki kodu. Problem polega na tym, że po pierwsze walidacja odbywa się w dwóch różnych miejscach i trochę się pokrywa, ponieważ niektóre walidacje można wykonać w obie strony, a po drugie utrzymanie kodu walidacyjnego może stać się nużące. Czy jest lepszy sposób na zrobienie tego, jakieś najlepsze praktyki lub narzędzia?


title: Jak często menedżer powinien spotykać się ze swoim podwładnym, który jest liderem zespołu?

text: Nasza firma zajmuje się oprogramowaniem i mamy zespół o takiej strukturze: menedżer->liderzy zespołu->członkowie zespołu. Podążamy za zwinnym modelem programowania i staramy się rozwijać produkt we współpracy. Codziennie rano spotykamy się z członkami zespołu i ich kierownikami, aby omówić postępy i problemy. Jeśli chodzi o TL->Manager, przez większość czasu nie ma przedmiotów do omówienia na co dzień, ponieważ cele TL dotyczą planu tygodniowego i tym podobnych. Przez większość czasu po prostu dyskutujemy o zasobach i jest to mniej techniczne. Chcę tylko sugestii, jak powinna wyglądać interakcja menedżera i kierownika zespołu i czy obecny system jest w porządku. Podziel się swoimi przemyśleniami lub pomysłami.


title: Jak ocenić, czy moje oczekiwania wobec rozmówców są adekwatne?

text: Nasza firma zatrudnia programistów C++ i musimy oceniać umiejętności kandydatów na podstawie życiorysów i (zazwyczaj) próbek kodu. Trudno mi zdecydować, czy moje oceny są realistyczne. Na przykład był facet, który podał dwie prace programistyczne, łącznie 5 lat doświadczenia. Twierdził, że pracował przy projekcie przeniesienia jakiegoś systemu operacyjnego na nowy sprzęt, a jednym z jego obowiązków było „naprawianie błędów w systemie operacyjnym”. Następnie otwieram próbkę i widzę, co następuje: char buffer[someSize]; strncpy(bufor, jakisString, jakisRozmiar ); oczywiście ten kod nie zakończy miejsca docelowego znakiem null, gdy łańcuch ma długość równą lub większą niż `someSize` i program może działać w niezdefiniowany sposób. Teraz moja myśl brzmi tak: "ten facet twierdzi, że naprawił błędy w kodzie systemu operacyjnego i teraz nie może poprawnie użyć najprostszej funkcji uruchomieniowej C... WTF???" i to motywuje mnie do napisania opinii do naszego HR, że może on kwalifikować się tylko na stanowisko tuż powyżej poziomu podstawowego. Co mnie niepokoi, nie mogę pozbyć się poczucia, że jestem zbyt surowa i wymagająca. Jak mogę zdecydować, czy moje oczekiwania są realistyczne, czy nie w takich sytuacjach?


title: Jak nazwać prefiks „javascript:” w wbudowanych procedurach obsługi zdarzeń?

text: W poniższym kodzie: <a onclick="javascript:alert()"> jak nazwać część `javascript:`? Protokół, pseudoprotokół, schemat, etykieta, prefiks? Próbuję tylko wymyślić dla niego wspólną nazwę, a nie technicznie poprawny termin w oparciu o to, czym tak naprawdę jest na końcu. Więc kiedy powiem na przykład "protokół javascript", większość ludzi będzie w stanie zrozumieć, co mam na myśli. (muszę to wykorzystać w dokumentacji)


title: Jak sprawnie posortować rekurencyjnie zdefiniowany stos?

text: Próbuję zaimplementować stos zdefiniowany rekurencyjnie. Czy jest jakaś wydajna metoda oprócz kopiowania elementów ze stosu w tablicy, sortowania ich i ponownego umieszczania na stosie? (Znam C/C++, Java) //Definicja stosu: Stack {E element; Stack topOfSubStack; }


title: Przyjazny dla SEO adres URL na stronie internetowej

text: Chcę stworzyć stronę internetową w frameworku CodeIgniter, w której poprzez slug mogę uzyskać dostęp do dowolnej strony internetowej. Na przykład, podobnie jak WordPress i Magento, możemy uzyskać dostęp do strony kategorii poprzez `www.sitename.com/category_type/category_detailpage` A także możemy uzyskać dostęp do tego Category_detail bezpośrednio, po prostu dodając jego slug po głównym URI `www.sitename.com/category_detailpage`. Jak mam zaprojektować schemat tabeli ślimaka w bazie danych, jeśli masz jakieś studium przypadku Kod projektu dla tego katalogu ślimaków w CodeIgniter, daj mi znać. Chcę zarządzać całym ślimakiem stron internetowych tylko w jednej tabeli. Ale nie mam jasnego pojęcia, jak mogę zarządzać kategorią / podkategorią / stroną szczegółów tylko w jednej tabeli, a następnie jak mogę uzyskać do niej dostęp tylko za pomocą sluga? Chcę stworzyć własną niestandardową strukturę w codeigniter, aby móc uzyskać dostęp do dowolnej strony za pośrednictwem slugu tylko niezależnie od tego, czy jest to strona podkategorii strony kategorii, czy dowolna pojedyncza strona. Jak mogę to osiągnąć?


title: Przeciągnij i upuść model dla modelica

text: **Czy jest jakiś sposób na połączenie `Modeliki` z `JaamSim`?** Ponieważ chcę mieć GUI o otwartym kodzie źródłowym z opcją przeciągnij i upuść do symulacji z `Modeliką` działającą na zapleczu. _Próbowałem już `SimForge`, ale nie ma w nim opcji przeciągania i upuszczania, podczas gdy `JaamSim` ma opcję przeciągania i upuszczania, ale nie uruchamia Modeliki do przetwarzania zaplecza._ Zasadniczo szukam wbudowanego GUI o otwartym kodzie źródłowym za pomocą JAVA.


title: przedmioty, klasy, typy

text: Jak programista zorientowany obiektowo rozumie słowo „typ”? Nie jestem świadomy istnienia teorii typów dla programowania obiektowego, ponieważ za każdym razem, gdy ktoś wspomina o teorii typów, jest to zawsze w kontekście jakiegoś funkcjonalnego języka programowania, więc co oznacza "typ" w kontekście zorientowanym obiektowo?


title: Trwały typ w Javie - czy powinienem używać flag?

text: Czy istnieje jakaś konkretna porada dotycząca trwałych wartości wskazujących typ? W szczególności chcę wiedzieć, czy powinienem utrzymywać flagę/stan wskazujący typ w trwałości, czy nie. Mam wrażenie, że zapominam/nie rozumiem jakiejś podstawowej koncepcji OO lub modelowania danych. Coś, o czym myślałem przez ostatni czas, to rozważenie, kiedy używać flag, a kiedy nie, i mieszanie idei odtwarzania obiektów pewnego typu z trwałości. Powodem mojej troski o flagi jest to, że w oprogramowaniu, które często tworzę (własne oprogramowanie korporacyjne napisane w Javie), te flagi stają się fragmentami informacji, które są trudne do utrzymania i których kolejni programiści muszą być świadomi, aby utrzymuj je (być może tworząc rozrost kodu). Tak więc, kiedy utrwalam moje `foo`, czy powinienem zachować przy nim jakąś flagę, która wskazuje, czy jest to `foobar` czy `foobo`? Czy jest jakaś konkretna rada na ten temat, jakaś luka w moim OO-foo lub modelowanie danych, o których zapominam?


title: W jaki sposób język statycznie pisany może obsługiwać kacze pisanie?

text: Rozumiem, czym są systemy typu dynamicznego i statycznego oraz czym jest pisanie kaczką. Ale nie rozumiem, jak można mieć statyczny język, który obsługuje pisanie kaczką. Według mojego rozumienia tylko język dynamicznie typowany może obsługiwać pisanie kaczką. Ta odpowiedź od StackOverflow wyjaśnia, że _ „Wpisywanie kaczki jest czymś, co jest całkowicie ortogonalne do pisania statycznego, dynamicznego, słabego lub silnego”. _ Daje przykład z C++ dla pisania kaczką w statycznym języku, ale nie jestem Programista C++ i nie rozumiem tego. Chciałbym wyjaśnić, w jaki sposób język statyczny może obsługiwać pisanie kaczką.


title: Jakie jest najlepsze podejście do studiowania TAOCP

text: Mam pytanie, jaki jest najlepszy sposób na przestudiowanie 4 tomów Sztuki programowania komputerowego i zachwytu hakerami Henry'ego S. Warrena? Czy jest jakaś strona internetowa, która skupia się na grupie badawczej, która używa TAOCP? Znam C/C++. Jakie są najlepsze książki do przygotowania do TAOCP? A jaki jest najlepszy sposób na stworzenie portfolio Demo, aby zapewnić pracodawcom, że jestem dobrze zorientowany w TAOCP?


title: Autoryzacja oparta na oświadczeniu dla struktury aplikacji?

text: Opracowuję framework, który ułatwia wspólne zadania zarządzania danymi dla kilku przyszłych aplikacji zbudowanych na nim, w tym zarządzanie dokumentami, wersjonowanie danych, przechowywanie, blokowanie itp. Obecnie używam .NET, SQL Server i EF Code First. Jednym z wymagań jest możliwość elastycznego zarządzania kontrolą dostępu do danych. Powinno być łatwe deklarowanie reguł, takich jak > "Jeśli użytkownik należy do projektu X, powinien mieć możliwość dostępu i modyfikowania > dokumentów związanych z tym projektem." Podczas moich badań natknąłem się na **kontrolę dostępu opartą na roszczeniach**, która wydaje się zapewniać niezbędną elastyczność. Jestem jednak nieco oszołomiony pozorną złożonością i nie jestem pewien, czy używanie tego byłoby przesadą. 1. O ile rozumiem, kontrola dostępu oparta na roszczeniach jest zwykle używana do pobierania informacji autoryzacyjnych od zewnętrznego dostawcy. Czy nadal ma to sens, jeśli aplikacja sama zarządza kontrolą dostępu, tzn. reguły autoryzacji znajdują się w tej samej bazie danych, co dane aplikacji? Wydaje mi się, że skonfigurowanie usługi zewnętrznej tylko do autoryzacji jest zdecydowanie przesadą dla naszych aplikacji. 2. Znalazłem wiele przykładów, jak pobrać autoryzację za pomocą Windows Identity Framework (WIF), ale niewiele jak zaimplementować autoryzację i przechowywanie reguł autoryzacji. Jak trudno byłoby zaimplementować coś takiego w WIF? Czy istnieją już jacyś dostępni dostawcy, którzy już używają SQL Server do przechowywania informacji o autoryzacji? Lub cokolwiek w WIF, co mogę po prostu rozszerzyć, aby tak się stało? Wszystko, co znalazłem, to przykłady korzystające z pliku konfiguracyjnego aplikacji. Mam nadzieję, że moje pytania nie są zbyt szerokie. Jestem raczej nowy w całym temacie kontroli dostępu opartej na roszczeniach i próbuję ustalić, czy ma ona zastosowanie w moim scenariuszu, a jeśli tak, od czego zacząć. **Aktualizacja** : próbowałem nieco zawęzić zakres pytania. Jeśli to nadal jest uważane za zbyt szerokie, podzielę go dalej. Myślę jednak, że oba pytania są ze sobą ściśle powiązane i warto zadawać je razem i odpowiadać na nie.


title: Jaki jest najlepszy sposób na przejrzenie kodu przed jego zatwierdzeniem w trunku? (SVN)

text: Jaki jest najlepszy sposób na przejrzenie kodu przed zatwierdzeniem go do łącza SVN? Jednym z pomysłów, o którym myślę, jest posiadanie dewelopera, aby zatwierdził swój kod do gałęzi, a następnie przejrzał swój kod podczas łączenia wersji gałęzi z bagażnikiem. Czy to dobra praktyka? Jeśli nie, co jeszcze można zrobić, aby przejrzeć kod przed zatwierdzeniem go w bagażniku?


title: Jak skonfigurować prosty przepływ pracy subversion

text: Próbuję skonfigurować prosty przepływ pracy SVN w domu. Jestem nowy w subversion (i programowaniu), więc czytałem oficjalną dokumentację PDF, ale wciąż nie jestem pewien, jak skonfigurować moje repozytorium. Pracuję głównie z pythonem, bashem i rsl (Renderman Shading Language), więc na moim dysku mam już strukturę /dev: ![/dev structure](http://i.stack.imgur.com/Zy9no. png) * http://imageshack.us/f/708/devstructure.png/ Mam strukturę /site, która łączy się z moim folderem /dev: ![wpisz tutaj opis obrazu](http://i.stack. imgur.com/i82P0.png) * http://imageshack.us/f/651/sitestructure.png/ Oczywiście rozpoczęcie korzystania z SVN zmieni to podejście, które już mam. Pytanie brzmi, kiedy konfiguruję repozytorium SVN do pracy, którą wykonuję w moim folderze /dev: **Czy skonfiguruję osobne repozytorium dla każdej innej platformy programistycznej?** i **Gdzie dokładnie powinienem umieścić moje repozytorium?** Dzięki.


title: Czy publicznie dostępny kod może być kodem zamkniętym?

text: Czy możliwe jest, zgodnie z prawem, aby kod był publicznie dostępny w Internecie, ale był chroniony prawem autorskim?


title: Grasz w 2 ze Scala czy Javą?

text: Chcę stworzyć duży osobisty projekt przy użyciu Play 2 Framework. Jestem ekspertem od języka Java, ale wydaje się, że z kilku artykułów, które przeczytałem, Play 2 działa doskonale, a zwłaszcza ze Scala. Nigdy nie pracowałem ze Scala, ale nauczyłem się już koncepcji jak domknięcia, programowanie funkcjonalne itp. Nauka tego byłaby ciekawa. Jestem naprawdę zmotywowany, ale zastanawiam się, czy są ludzie, którzy zaczęli kodować w Play2/Java i przeszli na Play2/Scala, co mogłoby wyjaśnić ich główne konkretne zalety.


title: Wykorzystanie licencji oprogramowania BSD

text: Jesteśmy firmą i chcemy używać 30% oprogramowania opensource BSD do podłączania i odtwarzania z naszym kodem źródłowym, czy możemy to zrobić? Ponadto ten program nie będzie rozpowszechniany, a dostęp do niego mają tylko nasi klienci korzystający z naszego własnego oprogramowania. Czy możemy to zrobić bez żadnych ograniczeń. Uprzejmie proszę o jak najszybszą informację zwrotną na temat powyższego.


title: Jakie są języki inne niż MS, które mogą wydajnie pisać dokumenty w formacie xlsx (Excel 2007+)?

text: Niestety do projektu, nad którym pracuję, wymagany jest format Excel. Nie mam problemów z uzyskaniem potrzebnych danych w obiektach i tablicach, a obecnie PHPExcel zajmuje się obsługą generowania dokumentów. Działa, ale jest powolny i zapętlony. Zastanawiałem się, czy istnieje bardziej wydajny język serwera do generowania dokumentów Excel (nie CSV). To jest czyste środowisko Linux, więc muszę trzymać się z dala od .NET. Jestem otwarty na każdy język programowania, który robi to czysto i sprawnie.


title: Interakcja z wieloma zlokalizowanymi usługami internetowymi

text: Mam problem z zarządzaniem wieloma usługami internetowymi, z których każdy ma nieco inną listę obsługiwanych języków Na przykład załóżmy, że w naszym serwisie internetowym obsługujemy język angielski, chiński i francuski przy użyciu typowego języka ISO i kodów krajów i dzwonimy do dwóch różnych usługi, **A** i **B**. Jeśli ktoś przychodzi z hiszpańskim lokalem, wracamy do angielskiego, który jest w porządku i elegancki, ponieważ wszyscy popierają angielski. Jednak **A** obsługuje tylko język angielski i chiński, więc gdy klient przychodzi po francusku, musimy wiedzieć, że w przypadku tego żądania musimy wrócić do języka angielskiego (wewnętrznie nadal posługując się francuskim). **B** obsługuje wszystkie trzy, ale dzieli chiński na dwa: tradycyjny i uproszczony. Byłoby fajnie wykonać ten sam podział wewnętrznie (bardziej szczegółowy jest zwykle lepszy), ale **A** rozpoznaje tylko kod nie podzielony, więc i tak musielibyśmy śledzić oba. W tej chwili mamy osobną tabelę bazy danych z listą mapowań z jednej kombinacji na drugą dla każdej wywoływanej przez nas usługi internetowej, ale to zdecydowanie nie jest skalowalne. Wkrótce będziemy musieli dodać kolejną tabelę mapowania dla usługi, którą odkryliśmy, że zachowuje się dziwnie w języku indonezyjskim (zamiast wrócić do rozsądnych ustawień domyślnych, dają nam całkiem małe 404) i chciałbym zobaczyć, czy istnieje lepsza strategia tam niż wiele tabel mapowania.


title: Jak zaktualizować produkcyjną bazę kodu/schemat bazy danych bez powodowania przestojów?

text: Jakie są techniki aktualizowania bazy kodu/schematu bazy danych serwera produkcyjnego bez powodowania przestojów?


title: Najlepsza praktyka sortowania, a następnie odwracania lub pisania komparatora „wstecznego”?

text: Napisałem komparator dla mojej niestandardowej klasy i kiedy uruchomiłem mój kod, zdałem sobie sprawę, że dane wyjściowe mojej listy tych obiektów były w odwrotnej kolejności do tego, czego chciałem. To było „w górę”, a nie „w dół”. To dlatego, że trzymałem się specyfikacji porównania, w której zwracana wartość mniejsza niż 0 oznacza, że inny obiekt jest mniejszy niż ten i tak dalej. Aby to naprawić, wywołałem metodę odwrotną na mojej liście, ale mogłem również zmienić metodę porównania, aby zwracała wartość większą niż 0, gdy inny obiekt jest mniejszy niż to. Co jest postrzegane jako standard w tym przypadku i dlaczego?


title: Pisanie kompilatora kompilatora — wgląd w użytkowanie i funkcje

text: > Jest to część serii pytań, które skupiają się na projekcie siostrzanym > Projektu Abstrakcji, który ma na celu wyabstrahowanie pojęć używanych w projektowaniu > języka w formie struktury. Siostrzany projekt nazywa się > OILexer, którego celem jest skonstruowanie parsera z plików gramatycznych, bez użycia > wstrzykiwania kodu na dopasowania. >> Niektóre inne strony powiązane z tymi pytaniami, związane z pisaniem > strukturalnym, można przeglądać tutaj, a łatwość użytkowania można znaleźć tutaj. Meta-temat > związany z zapytaniem o ramy i odpowiednie miejsce do publikowania > można znaleźć tutaj. Dochodzę do punktu, w którym mam zamiar rozpocząć wyodrębnianie drzewa analizy z danej gramatyki, a następnie parser rekursywnego opadania, który używa DFA do rozpoznawania ścieżek do przodu (podobnie jak LL(*) ANTLR 4), więc ja pomyślałem, że otworzę go, aby uzyskać wgląd. ### Jakie funkcje są idealne w kompilatorze parsera? Jak dotąd, oto krótki przegląd tego, co zostało zaimplementowane: 1. Szablony 2. Spojrzenie w przyszłość przewidywania, wiedząc, co jest prawidłowe w danym momencie. 3. Reguła „Deliteralizacja” biorąca literały w regułach i rozstrzygająca, z którego tokena pochodzą. 4. Automaty niedeterministyczne 5. Automaty deterministyczne 6. Prosty automat leksykalny do rozpoznawania tokenów 7. Metody automatyzacji tokenów: * Scan - przydatne przy komentarzach: Komentarz := "/*" Scan("*/"); * Odejmowanie - Przydatne dla identyfikatorów: Identyfikator := Odejmowanie(CiałoIdentyfikatora, Słowa kluczowe); * Zapewnia, że identyfikator nie akceptuje słów kluczowych. * Koduj — koduje automatyzację jako liczbę serii X przejść o podstawie N. * UnicodeEscape := "\\u" BaseEncode(IdentifierCharNoEscape, 16, 4); * Sprawia, że kod Unicode jest ucieczki w postaci szesnastkowej, z przejściami szesnastymi na 4. Różnica między tym a: [0-9A-Fa-f]{4} polega na tym, że uzyskana automatyzacja z Encode ogranicza dozwolony zestaw wartości szesnastkowych do zakresu IdentifierCharNoEscape. Więc jeśli podasz \u005c, wersja zakodowana nie zaakceptuje wartości. Takie rzeczy mają poważne zastrzeżenie: używaj oszczędnie. Uzyskana automatyzacja może być dość złożona. To, co nie jest zaimplementowane, to generowanie CST, muszę dostosować automatyzację deterministyczną, aby przenosić właściwy kontekst, aby to działało. Dla wszystkich zainteresowanych przesłałem ładny wydruk **oryginalnej formy projektu T *y♯**. Każdy plik powinien linkować do każdego innego pliku, zacząłem linkować w poszczególnych regułach, aby ich przestrzegać, ale zajęłoby to zdecydowanie zbyt dużo czasu (łatwiej byłoby zautomatyzować!) Jeśli potrzebny jest więcej kontekstu, proszę o odpowiednie posty. **Edytuj 5-14-2013** : Napisałem kod do tworzenia wykresów GraphViz dla maszyn stanowych w danym języku. Oto wykres GraphViz dotyczący AssemblyPart. Elementy członkowskie połączone w opisie języka powinny mieć w swoim folderze względnym plik rulename.txt z dwuwykresem tej reguły. Część opisu języka zmieniła się odkąd zamieściłem przykład, jest to spowodowane uproszczeniem kwestii gramatycznych. Oto ciekawy obraz graphviz.


title: Separacja a segregacja

text: Termin „segregacja” jest używany we wzorcu CQRS. Jaka jest różnica między segregacją a separacją w tym przypadku?


title: Pokrycie warunku dla If(A&&B) – pomiar wykonywanych danych wejściowych lub kodu?

text: Od kilku dni studiuję pokrycie schorzeń. W książce „The Art of Software Testing” podkreślają, że nie zapewnia to pokrycia decyzji, ponieważ na przykład > IF(A && B) `A=True, B=false` i `A=False,B=True` pokrycie warunku, ale decyzja jest zawsze „False”. Zastanawiam się, jak to może zaspokoić zasięg? Wartość „True” „B” w rzeczywistości nigdy nie będzie testowana z powodu zwarcia, więc jak może zaspokoić pokrycie?


title: Nazywanie projektu zawierającego tylko interfejsy

text: Wyodrębniłem interfejsy z moich klas repozytorium, takich jak ICustomerRepository, IProductRepository i tak dalej. Projekt zawierający repozytoria nosi nazwę X.DataAccessLayer. Czy powinienem wywołać projekt z interfejsami X.DataAccessLayerInterfaces, czy co jest lepsze? I zdecydowanie muszę trzymać interfejsy w osobnym projekcie (mam 2 projekty z implementacjami tych interfejsów).


title: Czy istnieją zapisy pokazujące codzienną pracę programistów?

text: Czy w Internecie są screencasty pokazujące screeny programistów, którzy postanowili nagrać swoją codzienną pracę i pokazać swój styl programowania? Interesuje mnie, jak inni programiści efektywnie wykorzystują narzędzia takie jak edytor z różnymi funkcjami, debugger, szukanie błędów, profiler itp. Może istnieją tacy "szaleni programiści", którzy nagrywają wszystko co robią i wieczorem zdają sobie sprawę, że poradzili sobie świetnie bardzo sprawnie pracują umysłowo i mają zapis, mogą dodatkowo komentować swoje intencje, które pamiętają i dzielić się swoimi skutecznymi hackami i stylem kodowania z innymi programistami. Czy istnieje taki zasób do nauki (bez względu na to, czy jest bezpłatny, czy płatny)? Jako odpowiedź wystarczy jeden konkretny portal lub firma, która koncentruje się na tego typu szkoleniach i jest wiodąca w tej dziedzinie.


title: Nauka programowania funkcjonalnego

text: To pytanie jest podobne do wyboru funkcjonalnego języka programowania. Chcę nauczyć się programowania funkcjonalnego, ale mam problem z wyborem odpowiedniego języka programowania. Na uniwersytecie przez 2 miesiące studiowałem Haskella, więc mam podstawowe pojęcie o tym, czym jest język funkcjonalny. Dużo czytałem, że programowanie funkcjonalne zmienia twój sposób myślenia. Zacząłem przyglądać się Clojure, które lubię z kilku powodów (kod jako dane, JVM itp.). To, co powstrzymuje mnie przed dalszą nauką Clojure, to fakt, że nie jest to język czysto funkcjonalny i boję się, że skończę używając stylu imperatyw/OO. Czy powinienem nauczyć się Haskella, czy dalej uczyć się Clojure? Z góry dziękuję P.D: Jestem otwarty na każdy inny język.


title: Jakie jest znaczenie wyniku analizy punktów funkcyjnych?

text: Jestem początkującym w zasadach inżynierii oprogramowania. To pytanie ma jedynie znaczenie akademickie. Czytałem o analizie punktów funkcyjnych. Otrzymamy wartość całkowitą jako dane wyjściowe do analizy punktów funkcyjnych. Jakie wszystkie rzeczy można wywnioskować z tego wyniku? Wiem, że jest to technika szacowania. Ale nie mogłem zrozumieć, jak odczytać to wyjście


title: Jak zaprojektować autoloader klas PHP?

text: Mam dość prostą strukturę folderów, w której główne klasy znajdują się w folderze, a wszelkie klasy używane przez te klasy znajdują się w podfolderze o tej samej nazwie co ta klasa. /exampleClass.php /exampleClass/usedByExampleClass.php Próbuję wymyślić prosty autoloader dla tej konwencji nazewnictwa. Do tej pory moim pomysłem jest używanie podkreśleń w nazwie klasy wszędzie tam, gdzie na ścieżce klasy może znajdować się ukośnik. W ten sposób mogę po prostu zastąpić wszystkie podkreślenia ukośnikami w autoloaderze i załadować plik klasy. Oznacza to, że nazwa klasy znaleziona w pliku: /exampleClass/usedByExampleClass.php będzie wyglądać tak: exampleClass_usedByExampleClass Jednak te nazwy klas są bardzo długie i chciałbym je skrócić, jednocześnie mając prosty autoloader dla tej struktury folderów. Jakieś pomysły lub przemyślenia, jak uzyskać zarówno krótkie nazwy klas, jak i prosty autoloader dla tej struktury folderów?


title: Nauczanie programowania (języków) w Europie Środkowej/północnej

text: Mam nadzieję, że to pytanie nie będzie nie na temat; jeśli uważasz, że byłoby lepsze miejsce, aby o to zapytać, daj mi znać. Zresztą obecnie robię doktorat z bioinformatyki. Chciałbym jednak w końcu odwrócić się od akademii i zamiast tego zająć się nauczaniem programowania lub, najlepiej, języków programowania (np. Perl, który wydaje się być moim "językiem ojczystym"...) - nie jako nauczyciel w szkole, ale z firma (w Niemczech lub Skandynawii). Ukończenie doktoratu zajmie mi kolejny rok do półtora roku, więc chciałbym wiedzieć, jak mógłbym / powinienem wykorzystać ten czas, aby zwiększyć swoje szanse na dostanie się do zawodu, który byłbym zainteresowany. na przykład jakieś certyfikaty Perla, które powinienem zdobyć? W przypadku, gdyby podczas lektury pojawiło się coś, co przychodzi mi do głowy, proszę daj mi znać. Z góry dziękuję!


title: XML: wiele korzeni + treść tekstowa poza korzeniem. Czy ktoś to robi?

text: Mam jeszcze jedno z tych pytań "czy to jest zrobione w XML" (moje ostatnie pytanie dotyczące komentarzy xml nie zostało udzielone, jeśli ktoś ma dobre wyjaśnienie) Zastanawiałem się tylko, czy ktoś, gdziekolwiek, mógłby: 1. Używać wielu `root` elementy w dokumencie XML 2. Umieść zawartość tekstową poza elementem `root` W3C odradza takie praktyki, `DOMParser` JavaScript nie pozwala nawet na takie przypadki i nie mogę wymyślić żadnego rozsądnego powodu, aby zrobić którąkolwiek z tych rzeczy . Wiem jednak, jak dziwaczne były niektóre implementacje XML, więc nie byłbym zaskoczony. Czy ktoś ma jakieś przykłady z prawdziwego świata, w których można by to zrobić? Zaakceptuję również odpowiedź, która określa, czy inne popularne parsery pozwalają na wykonanie któregokolwiek z tych.


title: Jak mogę licencjonować aplikacje sieciowe?

text: Mam pięć aplikacji znajdujących się na serwerach. Niektóre z tych aplikacji są oparte na gniazdach (C/C++), inne są oparte na sieci WWW (Java, PHP). Muszę przyznać licencje na te aplikacje na podstawie liczby użytkowników, do których mają dostęp, rodzaju funkcjonalności i typu użytkowników. Jaki model biznesowy powinienem zastosować? Mam na myśli kilka: 1. Stwórz webserwis java, który będzie montowany na danych licencji, a wszystkie serwery będą się z nim komunikować, gdy użytkownik zaloguje się do którejkolwiek z powyższych aplikacji. 2. Zrób serwer oparty na gnieździe. 3. Zamontuj plik licencji na każdym serwerze i spraw, aby każdy z nich komunikował się ze swoim plikiem indywidualnie i działał jako reguły licencji. Jeśli masz inne rozwiązania, strzelaj.


title: Zwinny ujednolicony proces a zwinny proces cyklu życia

text: Chciałem poznać różnicę między zwinnym cyklem życia a zwinnym zunifikowanym procesem (AUP). Rozumiem, że AUP jest zmodyfikowaną wersją RUP wykorzystującą zwinną metodologię. Czy możesz omówić różnice między nimi?


title: Długie rozszerzenia plików: dlaczego nie

text: Kończę kończenie aplikacji na iPada, a rozszerzenie pliku (używane głównie po to, aby Mail i Dropbox wiedziały, w jakim programie mają otwierać pliki) ma 12 znaków. Jedynym rozszerzeniem pliku, które jest prawie tak długie, jest `tax2010`. Dlaczego jest tak mało wariacji na ten temat i **jakiego rodzaju problemów mogę się spodziewać, używając długiego rozszerzenia pliku dla mojej aplikacji?** Te pliki zostaną wysłane, skopiowane i udostępnione*. We wszystkich testach sprawdza się idealnie. * Mam nadzieję, że.


title: Modułowa separacja Codeigniter z Phing

text: Myślę o zarządzaniu źródłem produktu, które robię za pomocą Codeigniter + HMVC. W tej chwili moja struktura folderów wygląda mniej więcej tak: application |-modules |-module1 | |--kontrolery | |--modele | |--views |-module2 | |--kontrolery | |--modele | |--wyświetla zasoby |-themes |-default |-module1 | |-- pliki motywów module1 |-module2 | |-- pliki motywu module2 Zastanawiam się nad wyczyszczeniem tego i uczynieniem modułów samowystarczalnymi w czasie opracowywania, tak jak ta aplikacja |-- to będzie zawierało tylko pliki podstawowe () |--modules (pusty katalog LUB moduły podstawowe) moduły |-moduł1 | |-kontrolery | |-modele | |-motywy | | |-domyślne | | | |-module1 domyślne pliki motywów | |-aktywa | | |-css (pliki css tylko dla tego modułu) | | |-js (pliki js tylko dla tego modułu) |-module2 |--//tak samo jak wyżej A następnie za pomocą Phinga zbuduj projekt, podczas którego moduły zostaną skopiowane do odpowiednich folderów, pliki css i pliki js zostaną zminimalizowane (skompilowany SCSS) i obrazy skopiowane do odpowiednich folderów. Wygląda to świetnie w przypadku wdrażania zmian, ale myślę, że to tylko wydłuży czas programowania, ponieważ za każdym razem, gdy wprowadzam jakiekolwiek zmiany, będę musiał budować, nawet aby zobaczyć to w rozwoju. Czy ktoś zastosował takie podejście do programowania przy użyciu CI? czy nawet lepiej? Chcę, aby mój rdzeń był łatwiejszy do śledzenia i oddzielał moduły w celu lepszej kontroli wersji, ponieważ będę mógł dodawać te moduły do projektu jako podprojekty.


Pracuję w firmie programistycznej, gdzie pracujemy głównie nad stronami internetowymi, które są oparte na otwartym kodzie źródłowym, takim jak dotnetnuke lub `nopcommerce` lub jakakolwiek inna, i jestem tym wszystkim całkowicie znudzony, ponieważ nie ma możliwości robienia czegoś nowego, ponieważ większość kod jest już zrobiony w tych open source. Wiem, że open source jest dobre dla firmy, ponieważ oszczędzają czas i zarabiają więcej pieniędzy, ale praca nad projektem open source jest zła z punktu widzenia programisty? uczę się też dobrych rzeczy z tych open source... jak framework encji z `nopcommerce` 1.9


title: Jak to się dzieje, że scentralizowane rozwiązania do kontroli źródeł nie rozgałęziają się w miejscu?

text: Dzięki scentralizowanej kontroli źródeł, takiej jak Perforce i SVN, tworząc gałąź, tworzą zupełnie nowy katalog. Jednak z mojego doświadczenia wynika, że git i inne rozproszone rozwiązania kontroli kodu źródłowego są w stanie aktualizować gałąź na miejscu. Oznacza to, że stosują do plików różnice między dwiema gałęziami. Wydaje mi się, że jest to znacznie lepsza opcja, ponieważ pozwala zaoszczędzić ogromną ilość duplikacji w przypadku dużych projektów, szybsze przełączanie gałęzi itp. Jaki jest tego powód? Nie widzę powodu, dla którego istnienie scentralizowanego organu wpływa na zdolność klientów do różnicowania dwóch gałęzi i modyfikowania zmian.


title: Jak obsługiwać połączenia asynchroniczne w aplikacji offline

text: Używam interfejsu API javascript aplikacji offline i chciałbym wiedzieć, czy mogę używać odroczonych obiektów do obsługi wywołań zwrotnych. Wywołania API nie używają protokołu HTTP, wywołania są do iz lokalnej bazy danych aplikacji. Jedyny sposób, w jaki byłem w stanie wyświetlić informacje, to użycie 'setTimeout' przy kolejnych wywołaniach, co, jak wiem, jest okropne! Mam więc długą listę wywołań zwrotnych i limitów czasu. var jsObj = {}; var innyObiekt = {}; //pierwsze wywołanie asynchroniczne methodName("arg1", jsObj, callback); funkcja callback(wynik){ jsObj["dane"] = wynik; } //drugie wywołanie asynchroniczne setTimeout(function(){methodName("arg1", anotherObj, callback2);}, 200); funkcja callback2(wynik){ jsObj["dane"] = wynik; } //czekaj setTimeout(function(){ $("#content").html(JSON.stringify(jsObj)); },300); Czy mimo to można to zmienić? Wszelkie porady są mile widziane. Sprawdziłem następujący post, ale nie jestem pewien, czy to zadziała. Zdaję sobie sprawę, że mogę tworzyć niestandardowe obiekty odroczone (jQuery), ale zmiana API w celu użycia tej lub innej metody obiektów obietnicy wydaje się nierealna.


title: Jak chronić się przed ukrytymi przelewami

text: weź pod uwagę następujące: (i+j)/2 i i j są 32-bitowymi liczbami całkowitymi, a wynik również powinien być. Ale w małym równaniu jest ukryte przepełnienie, i+j może stać się większe niż 32-bitowa liczba całkowita, nawet jeśli wynik zawsze będzie 32-bitową liczbą całkowitą. public class Sum{ public static void main(String []args){ int i = 2147483647; intj = 2147483647; System.out.println((i + j)/2); } } W rezultacie daje mi -1. Jak chronić się przed sytuacjami, które mogą się przepełniać, ale nie zawsze są oczywiste. Czy istnieje wzór, który to opisuje? (oprócz deklarowania wszystkiego długiego) Szukam ogólnej odpowiedzi, przykład java jest tylko przykładem, moje Delphi robi to samo.


title: Czy magistrala zdarzeń nie wpływa na stan globalny?

text: „Minimalizuj zmienny stan globalny” jest mniej lub bardziej akceptowaną zasadą projektowania programu. Często przytaczanym powodem jest to, że posiadanie globalnego stanu może mieć wpływ na dwa elementy, które pozornie nie są ze sobą powiązane. Innymi słowy, składnik mutujący stan globalny nie miałby pojęcia, na kogo jeszcze wpływa, ponieważ nie wie, jaki inny składnik jest zależny od tego stanu globalnego. Stycznie wzorcem, który jest często zalecany do tworzenia oprogramowania oddzielonego, jest wzorzec magistrali zdarzeń, w którym komponent zdolny do generowania zdarzeń rozgłasza go po magistrali, a komponenty zainteresowane pewnymi zdarzeniami subskrybują tę samą magistralę, aby odbierać wymienione zdarzenia. Moje pytanie brzmi - czy argument, który dotyczy stanu globalnego, nie ma racji bytu w przypadku magistrali zdarzeń? Przecież transmitując wydarzenie, nie mam pojęcia, kogo jeszcze psuję, bo nie mam pojęcia, jakie inne komponenty tego słuchają. Co więcej, podobnie jak w przypadku stanu globalnego, odczytanie kodu może nie sprawić, że zależności komponentów od pewnego nawet staną się jasne w miejscu rozgłaszania. Jedyną różnicą między tymi dwoma, o których mogę pomyśleć, jest to, że zdarzenie jest stanem _przejściowym_ w porównaniu ze stanem globalnym w postaci zmiennych statycznych lub współdzielonych obiektów, które mogą być trwałe.


title: Czy dynamiczne języki maszynowe zasługują na całą krytykę?

text: Przeczytałem kilka artykułów w Internecie na temat wyboru języka programowania w przedsiębiorstwie. Ostatnio popularne jest wiele dynamicznych języków typowania, tj. Ruby, Python, PHP i Erlang. Jednak wiele przedsiębiorstw nadal korzysta ze statycznych języków, takich jak C, C++, C# i Java. I tak, jedną z zalet statycznych języków o typach jest to, że błędy programowania są wychwytywane wcześniej, w czasie kompilacji, a nie w czasie wykonywania. Ale są też zalety dynamicznych języków pisanych. (więcej na Wikipedii) Głównym powodem, dla którego przedsiębiorstwa nie zaczynają używać języków takich jak Erlang, Ruby i Python, wydaje się być fakt, że są one typami dynamicznymi. To również wydaje się być głównym powodem, dla którego ludzie na StackOverflow decydują się na Erlanga. Zobacz Dlaczego zdecydowałeś się „przeciw” Erlangowi. Jednak wydaje się, że istnieje silna krytyka wobec dynamicznego typowania w przedsiębiorstwach, ale tak naprawdę nie rozumiem, dlaczego jest **tak** silna. Naprawdę, dlaczego tak dużo krytyki dynamicznego typowania w przedsiębiorstwach? Czy to naprawdę tak bardzo wpływa na koszt projektów, czy co? Ale może się mylę.


title: Jakie specjalizacje (programistyczne) są potrzebne w dobrym zespole programistycznym?

text: Na pierwszy rzut oka, powiedziałbym, że dobry zespół programistyczny musi rozumieć następujące kwestie: * Szczegóły podstawowego języka / frameworka * HTML, (asynchroniczny) javascript * SQL / model danych * Użyteczność / projektowanie interfejsu użytkownika * Bezpieczeństwo * Zarządzanie projektami . Jeśli ten zespół nie jest kompletny: co jest potrzebne?


title: Może monada kontra wyjątki

text: Zastanawiam się, jakie są zalety monady `Może` nad wyjątkami? Wygląda na to, że `Może` jest po prostu jawnym (i zajmującym dużo miejsca) sposobem składni `try..catch`. **aktualizacja** Proszę zauważyć, że celowo _nie_ wspominam o Haskellu.


title: Jak nauczyć użytkowników/klientów wysyłania lepszych opisów błędów

text: Często mam do czynienia z klientami lub użytkownikami zgłaszającymi błędy w aplikacjach. Przez większość czasu ich zawartość jest czymś bezużytecznym jak * BŁĄD!!! * x nie działa bez większej ilości informacji. Aby rozwiązać problem, muszę poprosić o każdy szczegół, co często jest bardziej czasochłonne niż naprawienie samego problemu. Inni wysyłają informacje w formatach, które nie są idealne, jak zrzuty ekranu (rekordów danych, **nie** błędów), chociaż mogliby wysłać link (mamy dostęp do systemów) i tak dalej. Jak powiedzieć swoim użytkownikom/klientom, aby opisali problemy bardziej szczegółowo, aby cały proces był łatwiejszy dla obu stron? ### edytuj To pytanie dotyczy bardziej umiejętności społecznych niż sposobu na programowe zbieranie logów i informacji o błędach. Zdaję sobie sprawę, że powinno to być częścią dobrego projektowania oprogramowania.


title: Jak uniknąć przytłoczenia podczas recenzowania kodu?

text: Jestem całkiem nowy w przeglądzie kodu i często czuję się przytłoczony nadchodzącymi zmianami. Mam na myśli, że kiedy są poważne zmiany w kodzie, pochodzące od kilku programistów, zwykle akceptuję wszystko bez przeglądania całości, zwłaszcza gdy mam dużo rzeczy do dokończenia. Jakie są techniki, które mogą pomóc w byciu skutecznym w tej dziedzinie?


title: Czy zgodność z WCAG 1 AA uniemożliwia korzystanie z Javascript?

text: Przeczytałem dokumentację WCAG i jestem zdezorientowany. Czy zgodność z WCAG 1 AA wyklucza użycie Javascript?


title: Karanie użytkowników za niezabezpieczone hasła

text: Zastanawiam się nad ograniczeniem praw użytkowników, którzy wybierają niezabezpieczone hasła (niepewność hasła określana przez długość, ile typów znaków (wielkie/małe litery, cyfry, symbole itp.) jest używanych i czy może być znajduje się w tęczowej tabeli), aby ograniczyć szkody, jakie może spowodować ich konto, jeśli zostanie naruszone. Nie mam jeszcze aplikacji na ten pomysł, ale powiedz, że piszę forum lub coś takiego: Użytkownicy, którzy używają 1234 jako hasła, mogą być zmuszeni do wypełnienia captcha przed wysłaniem lub być objęci rygorystycznymi środkami antyspamowymi, takimi jak jako limity czasu lub filtry Bayesa odrzucające ich zawartość. Jeśli to forum jest bardzo zhierarchizowane, pozwalając w jakiś sposób na „promocję” moderatorów lub cokolwiek innego, powstrzymałoby to ich przed uzyskaniem jakichkolwiek uprawnień lub powiedzeniem im, że mają uprawnienia, ale nie pozwoliłoby im z nich korzystać bez zmiany na bezpieczniejszy hasło. Oczywiście nie może to być jedyna miara bezpieczeństwa, ale może pasować do innych dobrych praktyk bezpieczeństwa. Co myślisz? Czy to po prostu przesada, odciągając uwagę od ważniejszych praktyk bezpieczeństwa, czy też jest to dobry sposób na ograniczenie ryzyka i zachęcenie użytkowników do używania bezpieczniejszych haseł (i, miejmy nadzieję, przekonanie ludzi, że stosujesz dobre praktyki bezpieczeństwa)?


title: jak łatwy jest html/css?

text: Wiele osób twierdzi, że html/css to coś prostego, na pierwszy rzut oka wygląda na proste, ale kiedy pracowałem nad niektórymi projektami, zauważyłem, że : * ta sama wartość działa inaczej w zależności od innych właściwości i docelowego elementu. * musimy znać domyślne wartości, które przeglądarka wpływa na każdą właściwość w każdym elemencie. * nie możemy być pewni, jak strona zostanie wyrenderowana, dopóki nie przeprowadzimy testów, nawet jeśli jesteśmy ekspertami. * nie możemy powiedzieć, że naprawdę znamy html/css, dopóki nie znamy algorytmu używanego przez silnik renderujący, a praca silnika z tak skomplikowanym układem rekurencyjnym jest ogromną odpowiedzialność. Krótko mówiąc, pracuję nad desktopem i tworzeniem stron internetowych od około 3 lat i nigdy nie widziałem tak skomplikowanej rzeczy do nauczenia się (html/css) **pytanie :** Czy html/css jest naprawdę trudny do opanowania?


title: Najlepsze podejście do licytowania projektu

text: Zasadniczo mamy projekty, które zawsze obracają się wokół tego samego wzoru. Ale czasami zdarza się, że mamy projekty, które są całkowicie odwrotne do tego, co zwykle robimy. Obecnie trudniej jest licytować i przekazywać tę licytację potencjalnemu klientowi. W trudniejszych przypadkach zdarzają się rzeczy, które wydają się _bardzo_ trudne do zrobienia, a my po prostu nie mamy pojęcia, ile czasu może to zająć... Chcemy też (na pewno) poświęcić jak najmniej czasu na licytację, wiedząc, że może nigdy nie powinniśmy dostać projektu. Tak więc moje pytania są; * Na czym opierasz swój czas? * Jakie czynniki należy wziąć pod uwagę (wiem, że to trochę trudne, ponieważ nie widzisz podstawowych informacji). * Czy są jakieś narzędzia, które mogą pomóc? Podsumowując, czy jest lepszy sposób na zrobienie tego, a jeśli tak, to w jaki sposób?


title: Czy standardy kodowania powinny być egzekwowane przez serwer ciągłej integracji?

text: Czy standardy/styl kodowania powinny być egzekwowane przez serwer ciągłej integracji, na którym działają narzędzia do analizy statycznej (np. PMD, StyleCop/FxCop) i kompilacja kończy się niepowodzeniem, jeśli standardy nie są przestrzegane? Jakich reguł nie należy używać, aby kompilacja się nie powiodła?


title: Wartość internacjonalizacji w sklepie iPhone App Store?

text: Mam kilka aplikacji na iOS/iPhone'a, które są stale sprzedawane w niewielkich ilościach w ponad 2 tuzinach różnych krajów, mimo że interfejsy aplikacji i wszystkie opisy sklepów są tylko w języku angielskim. W kilku krajach, w których angielski nie jest językiem urzędowym ani ojczystym, kilka aplikacji sprzedaje się znacznie lepiej niż jest to proporcjonalne do liczby ludności tego kraju w porównaniu z USA. Po co więc internacjonalizować aplikacje? Jaki, jeśli w ogóle, wzrost sprzedaży może odnotować typowa aplikacja, jeśli jest umiędzynarodowiona na określone języki lokalne? W których głównych językach może nastąpić największy wzrost sprzedaży lub pobrań aplikacji dzięki zlokalizowanemu opisowi aplikacji?


title: Podręcznik użytkownika dojrzałości, dokumentacja i łatwy w nauce framework PHP

text: Jestem na samym początku długoletniego projektu z ciągłym rozwojem. W związku z tym mam nadzieję, że podejmę dobrą decyzję, który Framework będzie do tego odpowiedni. Wcześniej pracowałem z Codeigniter. Plusem jest ogromna społeczność ze świetnym przewodnikiem użytkownika. Kilka wad to wsteczna kompatybilność z PHP4, która go powstrzymuje i (dlatego) brak OOP. Z tego powodu rozważam użycie Frameworka takiego jak Kohana czy Yii. Piszę 'rozważając', ponieważ nie jestem pewien, czy Podręcznik Użytkownika, Dokumentacja jest dla nas wystarczająca. Moje pytanie nie polega na tym, aby rozpoczynać blogopodobne porównanie w górę / w dół. Moje pytanie brzmi, czy doświadczyłeś wad mniej lub bardziej niekompletnego podręcznika użytkownika, dokumentacji takiej jak Kohana lub Yii.


title: Czy w programowaniu funkcjonalnym lokalne zmienne mutowalne bez skutków ubocznych są nadal uważane za „złą praktykę”?

text: Czy posiadanie zmiennych lokalnych w funkcji, które są używane tylko wewnętrznie (np. funkcja nie ma skutków ubocznych, przynajmniej nie celowo) jest nadal uważane za „niefunkcjonalne”? np. w kursie "Programowanie funkcyjne w Scali" kontrola stylu uznaje każde użycie `var` za złe Moje pytanie, jeśli funkcja nie ma skutków ubocznych, czy nadal odradza się pisanie imperatywnego kodu stylu? np. zamiast używać rekurencji ogonowej ze wzorcem akumulacyjnym, co jest złego w robieniu lokalnej pętli for i tworzeniu _local_ mutowalnego `ListBuffer` i dodawaniu do niego, o ile dane wejściowe nie są zmieniane? Jeśli odpowiedź brzmi „tak, zawsze są zniechęceni, nawet jeśli nie ma skutków ubocznych”, to jaki jest powód?


title: Wady projektowe i radzenie sobie z upokorzeniami

text: Czy zawsze miałeś fundamentalną rację w proponowanych projektach oprogramowania? Kiedy podajesz jakiś projekt, który był zasadniczo błędny, masz tendencję do utraty szacunku innych członków zespołu. Bez względu na to, co zrobisz po tym, zostaniesz sprawdzony pod kątem wszystkiego, co zaproponujesz po tym incydencie. Jest to szczególnie gorsze, gdy jesteś nowy w zespole, a oni nie znają Twojej przeszłości, w której miałeś dobre historie sukcesu. Być może powodem, dla którego podałeś zły projekt, był brak doświadczenia lub wiedzy lub obu w tej dziedzinie. Jak sobie z tym poradziłeś, gdy znalazłeś się w takiej sytuacji? Czy to jednorazowa rzecz w twojej karierze, czy zdarza się to z przerwami? Czy ktoś to odkłada, czy też w takiej sytuacji trzeba szukać nowej pracy? Proszę o szczere opinie... Dziękuję.


title: Czy używa os.environ do przechowywania wartości przełączników wiersza poleceń Pythona?

text: Regularnie piszę skrypty w języku CLI w języku Python 3, aby wykonywać kompilację danych i niektóre zadania konserwacyjne, a przy tym staram się przestrzegać PEP 8 i przewodnika po stylu Google Python. Przewodnik Google mówi, aby unikać używania zmiennych globalnych, podczas gdy PEP 8 oferuje konwencje nazewnictwa, ale tak naprawdę nie zachęca ani nie zniechęca do ich używania, więc ich nie używam. Jednak ostatnio odkryłem, że często używam opcji/przełącznika "verbose" wraz z funkcją "`printv`" do użycia podczas debugowania. Zwykle wygląda to tak: def printv(opts, msg, **kwargs): if opts.verbose: print(msg, **kwargs) Choć jestem niesamowicie leniwy, chciałbym to zrobić, żeby nie należy przekazać argument `opts` (który jest obiektem `OptionParser`) do `printv`. Oczywiście najprostszą metodą byłoby użycie zmiennej globalnej. Inną myślą, którą pomyślałem, byłoby ustawienie zmiennej „VERBOSE” w `os.environ`, ponieważ przełącznik koncepcyjnie zmienia środowisko wykonawcze. Oczywiście jest to sprzeczne z intuicją, ale czy jest pytoniczne?


title: Wydajność PHP vs C#

text: Mam aplikację, która jest częścią aplikacji konsoli napisanej w języku C# i część aplikacji sieci web PHP. Aplikacja konsolowa łączy się z wieloma urządzeniami szeregowymi i odczytuje dane dotyczące wilgotności i temperatury w suszarni do ziarna. [Aplikacja] następnie przechowuje informacje w bazie danych MySQL. PHP odczytuje bazę danych MySQL i wyświetla informacje użytkownikowi (proste). Napisałem również skrypt PHP do wysyłania e-mailem/smsem do użytkownika, jeśli któraś z temperatur wilgoci osiągnie poziom alarmowy (poziomy alarmowe są odczytywane z urządzenia i zapisywane w bazie danych MySQL). Obecnie publikuję na stronie PHP z każdą "aktualizacją" z urządzenia (10 sekund) i sprawdzam każdą wartość pod kątem jej limitów. Jeśli alarm jest wymagany, wysyłam go i aktualizuję bazę danych wskazując, że alarm został wysłany. To wygląda tak: (pseudo kod) JEŻELI wilgotność JEST WIĘKSZA NIŻ limit_wilgotności_krytyczny TO JEŻELI wilgotność_wysoka_krytyczny_alarm_has_been_wysłany JEST FAŁSZ TO WYŚLIJ_ALARM(); wilgoć_high_critical_alarm_has_been_sent = PRAWDA; KONIEC JEŚLI JEŚLI WILGOTNOŚĆ JEST WIĘKSZA NIŻ wilgotność_wys._warning_limit TO JEŚLI wilgotność_wys._warning_alarm_has_been_sent JEST FAŁSZ, TO SEND_ALARM(); wilgoć_high_warning_alarm_has_been_sent = PRAWDA; KONIEC JEŚLI JEŚLI WILGOTNOŚĆ JEST MNIEJSZA NIŻ wilgotność_low_critical_limit TO JEŚLI wilgotność_low_critical_alarm_has_been_sent JEST FAŁSZ TO WYŚLIJ_ALARM(); wilgoć_low_critical_alarm_has_been_sent = PRAWDA; KONIEC JEŚLI JEŚLI WILGOTNOŚĆ JEST MNIEJSZA NIŻ wilgotność_low_warning_limit TO JEŚLI wilgotność_low_warning_alarm_has_been_sent JEST FAŁSZ TO WYŚLIJ_ALARM(); wilgoć_low_warning_alarm_has_been_sent = PRAWDA; END IF END IF _**Powyższe stwierdzenie IF jest powtarzane dla każdego odczytu temperatury i wilgotności z urządzenia, których może być sporo._** Czy tego typu przetwarzanie powinno odbywać się w mojej aplikacji Console? Następnie, jeśli wymagane jest powiadomienie o alarmie, opublikuj na stronie tylko po to, aby wysłać e-mail / SMS? Przetwarzanie tych informacji w aplikacji konsoli zmniejszy całkowitą liczbę uścisków dłoni z bazą danych MySQL. Ale jeśli baza danych MySQL jest hostowana lokalnie, czy będzie to miało duży wpływ? W końcu przetestuję oba (jeśli wydaje się, że przetwarzanie w aplikacji konsolowej jest w rzeczywistości właściwym podejściem), jednak jest dużo kodu do przeniesienia, więc pomyślałem, że przyjdę tutaj i najpierw zapytam.


title: Wzorzec fabryczny i/lub wstrzykiwanie zależności?

text: Rozumiem tę koncepcję i mogę używać zarówno wzorca fabrycznego, jak i wstrzykiwania zależności, jednak wydają się one trochę sprzeczne ze sobą koncepcyjnie. Czy chodzi o używanie jednego nad drugim? Czy mogą być używane w połączeniu ze sobą? Czy używając DI, czy na stałe zakodowałbyś tworzenie klas w Fabryce? Czy to nie przekreśliłoby sensu DI? Ponieważ fabryka jest zależna od istnienia tworzonych przez siebie klas, w związku z tym będzie musiała zostać przekazana do fabryki w czasie wykonywania podczas korzystania z DI. A może przekażesz klasy, które fabryka ma stworzyć, do fabryki? Jeśli tak, czy nie przekreśliłoby to sensu budowy fabryki? Ponieważ wtryskiwacz w zasadzie wykonywałby całą pracę fabryki. Bardzo dziękuję za uwagę, czekam na Wasze spostrzeżenia.


title: Porównanie metody ATAM z narzędziami analitycznymi dostarczanymi przez ADL

text: To jedno z moich zadań na ten semestr. I żeby było jasne, to pytanie nie dotyczy odpowiedzi na moje zadanie, ponieważ już je ukończyłem, chodzi bardziej o sensowność pytania, które jestem zdezorientowany, ponieważ jak wiem z podręcznika, ATAM to proces oceny architektury oprogramowania który ma wiele faz i etapów. Z drugiej strony „narzędzia analityczne” dostarczane przez ADL to tylko podzbiór procesu oceny. Co więcej, każda ADL zapewnia inny zestaw narzędzi do analizy architektury. Myślę, że porównywanie tych dwóch koncepcji jest trochę dziwne i po prostu mylące. Mam na myśli to jak porównywanie całego komputera i samej karty graficznej. Mają pewne związki, ale nie są na tej samej skali. Karta graficzna ma być używana przez komputer do przetwarzania elementów graficznych. Każda karta graficzna ma swoje własne cechy i funkcjonalności, niektóre są lepsze od innych. Bez karty graficznej komputer może nadal działać, ale bez komputera karta graficzna jest niczym. Krótko mówiąc, moje pytanie brzmi: „Czy można dokonać takiego porównania?”


title: Co to są ramki MPEG I, P i B?

text: Ostatnio przeglądałem artykuły i filmy MPEG, aby zrozumieć, jak to działa. Rozumiem, co robią ramki I, P i B, ale nie rozumiem, jak obliczana jest predykcja. Załóżmy, że chcę nagrać film przedstawiający piłkę spadającą z nieba na ziemię, a następnie odbijającą się kilka razy, zanim w końcu się zatrzyma. Nie rozumiem też koncepcji makrobloku 16x16. Proszę mi powiedzieć: * jak obliczane jest przewidywanie * co to jest makroblok i jak pomaga w kodowaniu MPEG Moje referencje: * Przewidywanie MPEG * Wideo przy konwersji MPEG


title: Testowanie akceptacyjne przez użytkownika Klasyfikacja defektów podczas tworzenia oprogramowania dla klienta zewnętrznego

text: Jestem zaangażowany w duży projekt deweloperski, w którym (bardzo mały start-up) rozwijamy się dla klienta zewnętrznego (bardzo dużej firmy). Niedawno otrzymaliśmy ich pierwsze wyniki z testów UAT o dość małej iteracji, w których wymieniono 12 „defektów”, podzielonych na trzy kategorie: Niski, Średni i Wysoki. Problem, który mamy, dotyczy tego, czy wszystko na tej liście powinno być rejestrowane jako „defekt” – niektóre z wykrytych przez nich problemów można lepiej opisać jako udoskonalenia, a nawet „miło mieć”, a niektóre uważamy, że nie są wadami w ogóle. Kierownik ds. kontroli jakości klienta mówi, że standardowo oznacza to, że każdy problem, który zidentyfikują jako wadę, jest dla nas trochę niekomfortowy. Chociaż związek jest dobry, nie widzimy z tym dużego problemu, ale obawiamy się, że jeśli związek ucierpi w przyszłości, te listy „defektów” mogą okazać się dla nas kosztowne. Nie chcemy wydawać się trudnym lub brać sprawy zbyt osobiście i cieszymy się, że możemy wprowadzić wszystkie zidentyfikowane zmiany, jednak jesteśmy trochę zaniepokojeni, zwłaszcza że w naszym związku występuje nierówny balans sił . Czy jesteśmy tutaj paranoikami? A może moglibyśmy narażać się na problemy, zgadzając się na tę klasyfikację?


title: Radzenie sobie z samolubnymi członkami zespołu

text: Mój zespół boryka się z trudnym dylematem, kilku członków zespołu jest zasadniczo samolubnych (nie mylić z dominującymi!) i wybiera historie/zadania, które przyniosą im największe uznanie w firmie (na przeglądach sprintów itp., gdy wszyscy interesariusze są obecni). Ci członkowie zespołu są bardzo dobrzy w tym, co robią i są w pełni świadomi tego, co robią. Kiedy po raz pierwszy zaczęliśmy używać agile około rok temu, mogę powiedzieć, że też byłem dość samolubny (pochodząc z bardzo indywidualnej przeszłości). Przejąłem na własność niektóre historie i nie angażowałem w nie nikogo innego, co z perspektywy czasu nie było właściwe i niemal natychmiast nauczyłem się tego doświadczenia. Jesteśmy młodym zespołem bardzo ambitnych dwudziestolatków, więc do pewnego stopnia rozumiem egoizm (przecież każdy powinien być ambitny!). Ale poziom, do jakiego ostatnio osiągnął ten egoizm, zaczął niepokoić mnie i kilka innych osób z mojego zespołu. Z mojego punktu widzenia Agile/Scrum dotyczy **_drużyny_**, a nie jednostek. Powinniśmy troszczyć się o siebie nawzajem i pomagać sobie nawzajem w poprawie. Podczas naszej ostatniej retrospektywy wyjaśniłem to całkiem jasno, że powinniśmy być sprawiedliwi i dać każdemu szansę. Poczekam i zobaczę, co z tego wyjdzie w następnych kilku sprintach. W międzyczasie, jakie problemy napotkałeś z samolubnymi członkami i jak je przezwyciężyłeś?


title: Event Aggregator.. nie otrzymuje odpowiedzi, jak określić zakończenie?

text: Przepisuję aplikację do śledzenia pojazdów, opartą na mapach google. Użytkownicy są w stanie wyszukać pojazd wpisując kilka znaków "znaku wywoławczego" pojazdu. Moja aplikacja opiera się na czymś w rodzaju „szyny zdarzeń” w ramach Backbone.. kiedy nastąpi wyszukiwanie, wysyłam wiadomość w stylu „czy ktoś pasuje do tego?”.. Jeśli znacznik pasuje do wyszukiwanego terminu, odpowiada za pomocą rodzaj "tak, pasuję!".. Moje wyzwanie pojawia się, gdy nikt nie pasuje, nie otrzymuję odpowiedzi.. Trochę dziwnie jest "poczekać chwilę" i sprawdzić, czy otrzymałem odpowiedź.. Aplikacja opiera się na Backbone.js i używa wzorca Event Aggregator opisanego w odpowiedzi na to pytanie na Stack Overflow: http://stackoverflow.com/questions/7708195/access-function-in-one-view-from-other-in -backbone-js Czy istnieje dobrze zdefiniowany wzorzec projektowy, który mógłby mi pomóc? Wysyłasz prośbę o odpowiedź i nie otrzymujesz żadnych odpowiedzi?


title: Jak zmienić oczekiwania dotyczące dokumentacji z „zarządzania ryzykiem” na „ryzyko projektowe”

text: Staramy się wprowadzić zwinne koncepcje do ludzi biznesu, ale jedną z naszych największych przeszkód są ich oczekiwania dotyczące dokumentacji - ilość, autorstwo/własność dokumentów, cykl życia dokumentów, czas autorstwa i materiał to powinno być udokumentowane. Ludzie biznesu mają bardzo tradycyjny sposób myślenia. Dla nich dokumentacja jest narzędziem zarządzania ryzykiem. Co możemy zrobić, aby pomóc im postrzegać dokumentację jako ryzyko i wymaganie? Próbowaliśmy wskazać w harmonogramie projektu, ile dodatkowego czasu poświęca się na dokumentację. Ich odpowiedź jest taka, że pomaga im oszacować koszty projektu i zmniejsza ryzyko. Odpowiadamy z empirycznymi dowodami pokazującymi, że do tej pory to nie zadziałało. Reagują „to wina IT z powodów x, y, z”, a następnie wprowadzają więcej dokumentacji, aby uwzględnić błędy IT. A potem kręci się dalej i dalej, aż bagaż staje się nie do zniesienia. Jeśli chodzi o autorstwo, staraliśmy się przekonać biznes, że IT nie chce lub nie potrzebuje pewnych dokumentów i że firma jest w stanie wyprodukować je bez IT, jeśli uważa, że jest to potrzebne. Więc wyprodukują coś, a następnie pociągną nas do odpowiedzialności za jego treść, nawet jeśli jest (z naszej perspektywy) niezwiązana z nami i nie jest przez nas sprawdzana. Kiedy więc próbujemy zweryfikować ich dokumenty, zostajemy wciągnięci, a wtedy kwestie własności i utrzymania odwracają ich brzydkie głowy. Ze wszystkiego, co przeczytałem, jest to sytuacja bez wyjścia. Czy są jakieś rady lub przemyślenia, które pomogą nam przekształcić ich oczekiwania dotyczące dokumentacji w lekkie, gotowe na czas/po prostu wystarczająco dobre dokumenty? W razie potrzeby poszukaj więcej informacji w moim poprzednim pytaniu.


title: Java - Użyj polimorfizmu lub parametrów typu ograniczonego

text: Załóżmy, że mam tę hierarchię klas... public abstract class Animal { public abstract void eat(); public abstract void talk(); } class Pies rozszerza Zwierze { @Override public void jesc() { } @Override public void dyskusja() { } } class Kot rozszerza Zwierze { @Override public void jesc() { } @Override public void dyskusja() { } } to mam.... public static <T rozszerza Zwierzę> void addAnimal(T zwierzę) { animal.eat(); zwierzę.rozmowa(); } public static void addAnimalPoly(Zwierzę) { animal.eat(); zwierzę.rozmowa(); } Jaka jest różnica w przypadku używania parametrów typu ograniczonego lub polimorfizmu? A kiedy użyć jednego lub drugiego?


title: Poprawić użyteczność i dokładność wyszukiwania adresów?

text: W mojej aplikacji mam taką funkcję: Użytkownik chce dodać nowy adres do bazy danych. Przed dodaniem adresu musi przeprowadzić wyszukiwanie (przy użyciu parametrów wejściowych, takich jak kraj, miasto, ulica itp.), a gdy pojawi się lista, ręcznie sprawdzi, czy adres, który chce dodać, jest obecny, czy nie. Jeśli jest obecny, nie doda adresu. Czy istnieje sposób na ulepszenie tego procesu. może jakoś wyeliminować krok, uniknąć konieczności ręcznej weryfikacji itp.


title: Pomocnik widoku kafelka strony Zend

text:
Stworzyłem pomocnika widoku ZF2 `PageTitle` (rozszerzając `Zend\View\Helper\AbstractHelper`). Jak sugeruje nazwa helpera, odpowiada on za renderowanie tytułu strony dla każdego skryptu widoku akcji. Tak więc w _skrypcie każdego widoku akcji_ (nie w układzie) wywołałbym: echo $this->pageTitle('Tytuł mojej strony', 'jakaś-ikona-nazwa-klasy'); Spowoduje to wyrenderowanie wymaganego wyniku HTML

 Tytuł mojej strony

 wtyczka zawiera również inny pomocnik widoku (`button`); jego zadaniem jest renderowanie zero lub więcej elementów przycisków formularza. Mój problem pojawia się, gdy muszę przekazać te _przyciski/linki dla poszczególnych stron_. Moim obecnym rozwiązaniem jest dostarczenie tablicy „przycisków” jako trzeciego parametru. $this->pageTitle('Tytuł mojej strony', 'nazwa-klasy-ikony', array( 'etykieta przycisku 1' => array( 'attributes' => array( 'class' => array('jakaś- nazwa-klasy', 'inna-klasa'), 'data-foo' => 'bar', ), ))); (Powyżej jest tylko przykładem tego, co starałem się zademonstrować problem. W rzeczywistości jest to wiele przycisków, każdy z kilkoma „atrybutami”) Myślę, że powyższe podejście jest nieuporządkowane, z pewnością w obrębie widoku. Pokonuje to również cel posiadania pomocnika widoku, ponieważ będę musiał ponownie podać tę konfigurację za każdym razem, gdy będę musiał ponownie użyć nagłówka strony (niektóre strony mogą używać innych widoków jako dzieci). Kilka rozwiązań, które rozważałem. **Utwórz fabrykę usług tytułów stron dla każdej strony** Każda fabryka utworzy nową wtyczkę `PageTitle` i wstrzyknie do niej konfigurację 'button'. Jest to następnie rejestrowane w menedżerze wtyczek widoku pod unikalną nazwą wtyczki. Na przykład zmieniłbym wywołanie w moim widoku na: echo $this->mySpecificPageTitle(); // brak wstępnie skonstruowanych argumentów Minusem jest to, że muszę następnie utworzyć przydział fabryk (tylko po to, abym mógł podać bardzo nieznacznie zróżnicowane argumenty). **Podano nazwę 'usługi' do wtyczki** (jest to podobne do pomocnika widoku nawigacji), a następnie helper wywołuje tę usługę i zwraca wymaganą konfigurację. Na przykład: echo $this->pageTitle('Tytuł mojej strony', 'jakaś-nazwa-klasy', 'MyButtonService'); Tak więc w helperze: $buttonConfig = $serviceManager->get('MyButtonService'); To jednak ponownie oznacza, że musiałbym utworzyć fabrykę dla każdej potrzebnej mi usługi MyButtonService.


title: Konfiguracja repozytorium Git

text: Przenoszę kontrolę źródła mojej firmy z TFS do GIT. Obecnie mamy TFS zdefiniowane jako. * Kolekcja projektów / * / Klient A * / Produkt A * / Produkt B * / Produkt C * / Klient B * / Produkt D * / Produkt E * / Produkt F Jak najlepiej to zrobić w Git? Myślałem o następujących rzeczach: * Repozytorium (Klient A) * Oddział (Produkt A) * Oddział (Produkt B) * Oddział (Produkt C) * Repozytorium (Klient B) * Oddział (Produkt D) * Oddział (Produkt E) * Branża (Produkt F) Jakie jest Twoim zdaniem najlepsze podejście, ponieważ projekt jest nieco inny?


title: Przechowywanie prostej/elastycznej logiki cenowej w bazie danych

text: Pracuję nad algorytmem wyceny, w którym chcę uogólnić obliczanie niektórych składników/opłat. Ładunki składają się z 3 elementów. > 1 - opłata podstawowa/podstawowa, 2 - opłata manipulacyjna (może mieć wiele > tych), 3 - składniki podatkowe (może mieć też wiele odmian). Zastanawiam się, czy mogę przechowywać algorytm taki jak poniżej w bazie danych i używać go do każdorazowego obliczania opłat. A może jest lepszy sposób na elastyczne zarządzanie takimi cenami? > * **Krok 1:** _Step1Result_ = Suma(wartość składnika1, wartość > składnika2, wartość składnika4) (Załóżmy, że koszty transportu są sumą > kilku opłat podstawowych) > * **Krok 2* * : _Step2Result_ = Step1Result * .01 (powiedzmy, że opłata manipulacyjna > opłata wynosi około 1 procent od wyniku kroku 1) > * **Krok 3** : _Step3Result_ = Step1Result * .103 (powiedzmy podatek od > kroku 1 wynik to 10,3 procent) > * **Krok 4** : _Step4Result_ = Step3Result * .0203 (powiedzmy trochę > specjalna dopłata podatkowa jako 2,03 procent) > * **Razem** : _TotalResult_ = step1result + step2result + step3result + > step4result > [Edytuj] Dodanie przykładowej usługi logistycznej, nad którą teraz pracujemy. * Zarezerwowana przesyłka może zostać przewieziona z lokalizacji A do lokalizacji E przez C, D i E. * Tak więc podstawowa opłata frachtowa liczona jest jako koszt transportu między A do B, B do C, C do E. * Przesyłka może być rozładowywane z jednego pojazdu w lokalizacji D i ładowane do innego pojazdu, do którego mogą zostać naliczone opłaty za załadunek/wyładunek. Może to być procent opłaty transportowej lub wartość bezwzględna. Mogą pojawić się dodatkowe opłaty, które mogą zostać dodane w przyszłości * Wtedy możemy mieć inne dodatkowe opłaty za usługi premium * Mamy podatki, które będą musiały być naliczane nie od całego kosztu, ale jeden podatek może przejść do podstawowej opłaty za fracht, a inny może przejść do innych opłat, a inny zestaw będzie na całkowity koszt. Teraz potrzebuję elastycznej logiki, aby kalkulacja była konfigurowalna dla użytkownika. Jeśli ktoś pracował nad takim ogólnym algorytmem, proszę dać pomysł. Zwróć uwagę, że szukałem takich rzeczy w SO, a także w google i nie mogę jeszcze wymyślić konkretnego. Jeśli coś przegapiłem, śmiało zaznacz. Zasadniczo chciałbym przechowywać formułę i trenować z nią cenę. Ta logika zostanie zaimplementowana w C# i Sql Server.


title: Dobry przewodnik po wyborze skali punktowej do użycia z Agile/SCRUM?

text: W naszym projekcie używamy Pivotal Tracker, który pozwala nam wybrać jedną z trzech skal punktowych: 0,1,2,3 0,2,4,8 0,1,3,5,8 A ja szukam źródło, które pomoże nam w podjęciu decyzji. (Po użyciu 0,1,2,3 dla dwóch iteracji, możemy zobaczyć, gdzie jedna z pozostałych byłaby o wiele bardziej użyteczna lub znacząca.)


title: Jak zachęcić nie-programistę do nauki programowania?

text: Nauka programowania po raz pierwszy może być nudna, zwłaszcza czytanie książki z nudnymi przykładami. **Czy jest inny sposób na naukę programowania osób niebędących programistami?** Na przykład zaangażuj ich w prosty projekt gry, który jest zabawny.


title: Kierownictwo chce mieć API w zakupionym oprogramowaniu

text: Moja firma chce kupić nowe oprogramowanie do naszej Księgi Głównej. Chcemy być w stanie połączyć go z różnymi innymi systemami, które zostały zakupione. Nic nie jest budowane na zamówienie. Oprogramowanie, które lubią nasi księgowi, nie ma żadnych interfejsów API. Pozwala jednak na import i eksport za pośrednictwem różnych formatów plików. Importy (które są dla nas najbardziej importowane) mogą zostać wywołane przez umieszczenie pliku importu w folderze. „Komitet sterujący”, który bierze udział w tej decyzji zakupowej, składa się z osób, które nie są ani informatykami, ani programistami. To prawnicy, dyrektorzy naczelni, specjalista ds. zgodności i kilku innych na podobnych stanowiskach. Są zafiksowani na tym oprogramowaniu, które ma API lub API, nie wiem, co jest bardziej właściwe. Wydaje mi się, że dzięki funkcjonalności importu i eksportu możemy zrobić to, co trzeba. Ponieważ nie tworzymy własnego oprogramowania, nie możemy kodować do API. Ale nie mam wystarczającego doświadczenia, aby naprawdę wiedzieć, co może oferować interfejs API, czego dane oprogramowanie nie może dostarczyć. Jestem przewodniczącym komitetu sterującego i chciałbym, abyśmy nie byli śledzeni przez coś, co, jak podejrzewam, jest nieistotne. Czy ktoś może mi pomóc zrozumieć, czego może mi brakować, a raczej w jaki sposób interfejs API byłby korzystny?