Pracuję dla firmy, która obsługuje kilka języków: COBOL, VB6, C # i Java.
Używam tych języków do mojej podstawowej pracy, ale często zdarza mi się kodować niektóre mniejsze programy (np. Skrypty) w Pythonie, ponieważ uważam, że jest to najlepsze narzędzie do tego typu zadań.
Na przykład: analityk daje mi złożony plik CSV do wypełnienia niektórych tabel DB, więc użyłbym Pythona do parsowania go i utworzenia skryptu DB.
Jaki jest problem?
Główny problem, jaki widzę, polega na tym, że kilka części tych szybkich i brudnych skryptów powoli zyskuje na znaczeniu i:
- Moja firma nie obsługuje Pythona
- Nie podlegają kontroli wersji (wykonuję kopię zapasową w inny sposób)
- Moi współpracownicy nie znają Pythona
Analitycy zaczęli nawet odwoływać się do nich w wiadomości e-mail („uruchom skrypt, który eksportuje ...”), więc są one potrzebne częściej, niż początkowo myślałem.
Powinienem dodać, że te skrypty to tylko narzędzia, które nie są częścią głównego projektu; po prostu pomagają wykonywać trywialne zadania w krótszym czasie. W moich małych zadaniach bardzo pomagają.
Krótko mówiąc, gdybym był zwycięzcą loterii, aby mieć wypadek , moi współpracownicy musieliby utrzymać projekt przy życiu bez tych skryptów; spędzą na przykład więcej czasu na ręcznym naprawianiu błędów CSV.
Czy to częsty scenariusz? czy robię coś źle? Co powinienem zrobić?
źródło
Odpowiedzi:
Musisz sformalizować sytuację, ponieważ tak naprawdę nie powinna do tego dojść. Te rzeczy się jednak zdarzają, więc musisz wyjaśnić swojemu szefowi, że stworzyłeś te skrypty na własny użytek, ale „uciekły” one do szerszego obiegu. Przyznaj się (jeśli to konieczne), że byłeś winny, że nie zwróciłeś na to uwagi wcześniej.
Przynajmniej skrypty powinny być poddane kontroli źródła „na wszelki wypadek” - wtedy przynajmniej jeśli nie jesteś dostępny (z jakiegokolwiek powodu), twoi współpracownicy będą mieli dostęp do skryptów.
Następnie albo musisz przekonać swojego szefa, że Python jest na to odpowiedni, albo zaakceptować, że będziesz musiał ponownie je napisać w obsługiwanym języku. Jeśli koszt udokumentowania skryptów i edukacji współpracowników w Pythonie jest niższy niż koszt ponownego napisania, możesz nawet wygrać argument.
źródło
Nie mogę dać ci pełnej odpowiedzi, co powinieneś zrobić. Mogę podać tylko jedną sugestię, której możesz użyć na początek:
Sprawdź skrypty w repozytorium, do którego dostęp mają wszyscy (wymagani) programiści. Ale pamiętaj, aby pamiętać, że najpierw napisałeś te skrypty dla własnego celu, tj. Aby wykonać powierzone ci zadanie. Następnie dodaj, że sprawdzasz tylko te skrypty, aby inni mogli z nich korzystać.
Następnie musisz tylko zobaczyć, jak reagują na to inni ludzie.
źródło
W miejscu pracy napotkałem podobne problemy. Słyszałem „Co to jest PHP?” Kilka lat temu. Nie rozumieją ani nie chcą się uczyć niczego poza stosem MS. Jeśli python jest właściwym narzędziem do pracy, po prostu powiem o tym moim przełożonym i będę gotowy na wiele porównań i wyjaśnienie, dlaczego python był właściwym wyborem. Będzie to frustrujące, ale myślę, że większość zgadza się, że python jest dobrym wyborem do manipulacji tekstem.
źródło
Pierwszą rzeczą, którą musisz zrobić, to porozmawiać z drużyną i szefem. W tej chwili masz ogromny czynnik ciężarówki (jeśli zostałeś potrącony przez ciężarówkę, nikt inny nie byłby w stanie utrzymać twoich skryptów). Wygląda na to, że skrypty do wykonywania tych zadań są ważne, ale ważne jest również, aby każdy, kto musi, mógł edytować i obsługiwać te skrypty. Musisz wyjaśnić, w jaki sposób używanie Pythona zwiększa wartość - jak oszczędza czas, wysiłek, zasoby, pieniądze i tak dalej.
Po drugie, weź to pod kontrolę wersji projektu. Teraz. Nic, co produkujesz dla projektu, nigdy nie powinno być poza kontrolą wersji tego projektu.
Przygotuj się na luz - ludzie zazwyczaj nie lubią zmian. Ubieganie się na własną rękę, używanie nieobsługiwanych i nieznanych (dla zespołu / organizacji) technologii było złym pomysłem, bez konsultacji z przynajmniej innymi programistami i określenia najlepszego (dla projektu, nie tylko ciebie) sposobu automatyzacji tych zadań dla wszystkich używać.
Myślę, że to prawdopodobnie dobry przypadek
Wygląda na to, że wykonałeś zadanie, ale teraz będziesz musiał poradzić sobie z konsekwencjami.
źródło
Moja zasada jest taka:
Wszystko, co potencjalnie wpływa na pracę innych osób, należy jak najszybciej omówić z rówieśnikami i przełożonymi.
Ale jeśli jest to dla ciebie i tylko dla ciebie, o ile nie spowoduje to szkody w infrastrukturze ani bezpieczeństwie twojej firmy , możesz to zrobić tak, jak chcesz, aby wykonać zadanie.
źródło
Masz dwie opcje:
W zależności od organizacji nr 1 może być trudny (w końcu ograniczenie listy standardowych technologii pozwala uniknąć kombinatorycznej eksplozji wymagań dotyczących szkolenia i umiejętności wsparcia).
Druga opcja pomogłaby Ci w ustaleniu umiejętności i być może będziesz w stanie znaleźć stronę trzecią (i prawdopodobnie otwarte oprogramowanie z komercyjnymi licencjami), która wykona ciężką pracę. Np. Wyszukiwanie „LINQ to CSV” powinno przynieść użyteczne trafienia.
BTW, narzędzia programistyczne VB6 (IDE, kompilator) nie są obsługiwane (nawet poprawki bezpieczeństwa), więc prawdopodobnie i tak wymaga aktualizacji. (Środowisko wykonawcze VB6 jest obsługiwane jako część obecnych wersji systemu Windows i dołączane do nich). Być może może to być wykorzystane jako pomocnik w podejściu nr 1: standardowy zestaw narzędzi musi iść w górę ruchomego celu z powodu zależności od dostawcy.
źródło
Jeśli dostaniesz zadanie i jest to jedyny sposób, aby wykonać je na czas, tak naprawdę nie masz wyboru. Myślę, że rozsądnie jest poinformować osoby odpowiedzialne o tym, co robisz. Nie powinieneś wychodzić poza wymaganą kontrolę źródła (chyba że to absolutnie nie działa w ogóle?) Testowanie i dokumentacja.
Czasami firma może pozwolić jednemu deweloperowi zacząć szukać nowego obszaru rozwoju. Niestety, kod może dostać się do produkcji szybciej niż ktokolwiek inny.
źródło
Muszę przyznać, że praca z 20 różnymi językami śmierdzi, DUŻO.
Masz skrypt Bash, który wywołuje skrypt Python, który wywołuje skrypt Perl, który wywołuje plik binarny Java, który wywołuje C dll ...
Potem coś uderza wentylatora w całym rurociągu, a ty przechodzisz - WTH IS DAT KODEZ? Zwłaszcza w Perlu ... A debugowanie prostego, powiedzmy, problemu z kodowaniem zamienia się w koszmarny bałagan. Nie można skutecznie debugować 5 z 7 języków, a to staje się prawdziwym bólem.
Lub musisz dodać prostą zmianę, ale tworzysz 10 błędów, ponieważ Perl ma gotchas, Java ma gotchas itp.
I ten łańcuch językowy 7+ zaczyna się krok po kroku.
Stąpaj ostrożnie, tu będą smoki ...
źródło
Jeśli są to narzędzia, których używasz dla siebie, możesz robić wszystko, co zwiększa produktywność.
W rzeczywistości powinieneś być zachęcany do tworzenia i używania takich narzędzi, które ostatecznie staną się przedłużeniem twoich ramion.
W końcu uznają znaczenie posiadania takich narzędzi, bez względu na to, w jakim języku są napisane , i zaczną wdrażać w swoim środowisku pracy.
źródło
Kiedy każe ci się pisać kod robiąc coś, język jest zwykle określony lub dorozumiany (reguła w korporacjach).
Ale kiedy musisz wykonać jedno zadanie, takie jak import danych do DB, możesz wybrać narzędzie, które Twoim zdaniem pasuje najlepiej, ponieważ musisz zrobić coś poprawnie i szybko, a wynik jest ważny, nie narzędzia.
Więc użyłbym tej zasady:
1) Jeśli zostaniesz poproszony o wykonanie jakiegoś zadania, takiego jak import danych, skorzystałbym z narzędzi / języka / itp. byłoby to dla mnie najwygodniejsze i najszybsze dla tego zadania.
2) Jeśli zostaniesz poproszony o napisanie narzędzia wykonującego jakieś zadanie, na przykład zaimportować niektóre dane, omówiłbym z menedżerem, jakiego języka / narzędzia użyć (z wyjątkiem sytuacji, gdy używam języka, który jest domyślny, na przykład gdy firma używa [prawie ] tylko Java).
3) Jeśli zadanie wydawało się jednorazowe, ale stało się powtarzalne, należy porozmawiać z menedżerem, aby zmienić go z 1) na 2) i ponownie napisać z preferowanego języka obsługiwanego przez firmę.
źródło
Przypuszczam, że nie jesteś w stanie podjąć decyzji (w przeciwnym razie nie zadałbyś pytania). Co twój szef sądzi na ten temat? Powinieneś z nim porozmawiać i spróbować go przekonać, że Python jest właściwą drogą ...
Oczywiście chodzi o to, co się stanie, kiedy odejdziesz. Brak możliwości utrzymania kodu to prawdopodobnie wystarczający powód, aby przestać używać Pythona. Możesz też zacząć uczyć swoich kolegów tego języka ...
źródło