Szybkie sposoby na ewaluację kodu - Programowanie jest łatwe

Nierzadko bywa, że przy okazji czytania artykułu/porady/dokumentacji, albo z czystej ciekawości chcemy "na szybko" przetestować fragment jakiegoś kodu. Jest kilka sposobów na zrobienie tego dla nieskomplikowanych algorytmów bez konieczności uruchamiania naszego ulubionego IDE.

Jajecznica- szybka ewaluacja śniadania

Jestem świadomy, że nie przedstawię wszystkich możliwości i nie dotknę każdego języka, jednak mam nadzieję, że podpowiem w jaki sposób na szybko napisać fragment kodu i go przetestować, chociażby na komputerze kolegi/koleżanki. Swoją drogą, jestem ciekawy jak wielu potencjalnych czytelników zrezygnowało z lektury ze względu na słowo "ewaluacja", które użyłem w tytule.

Większość narzędzi i sposobów, które przedstawię poniżej mają jedną i zasadniczą wadę. Nie wiadomo, która wersja języka jest użyta do testów, na jakim środowisku jest uruchamiany kod, a także możemy być narażeni na uruchomienie kodu w środowisku emulowanym, to znaczy takim, które tylko naśladuje prawdziwe zachowania- w niektórych sytuacjach może to powodować zupełnie niechciane wyniki.

JavaScript

JavaScript pójdzie na pierwszy ogień, ponieważ każdy ma przeglądarkę, a każda szanująca się przeglądarka ma tryb developerski, który oferuje dostęp do konsoli. W konsoli JavaScript możemy interaktywnie pisać kod, sprawdzać co się stanie, a także w bardzo prosty sposób modyfikować zachowanie strony, na której tryb developerski został uruchomiony. W każdej (?) przeglądarce taki tryb można uruchomić np. klikając prawym przyciskiem na stronie internetowej i wybierając opcję "Zbadaj Element" z menu kontekstowego. Jako ciekawostka- zrób to, gdy jesteś zalogowany/zalogowana na facebooku- przywita Cię piękny komunikat ostrzegający przed oszustwami.

W oknie narzędzi developerskich klikamy w zakładkę "Konsola" i już możemy pisać kod, bawić się nim, sprawdzać co się dzieje. Poniżej przykład

for (let i = 0; i < 5; i++) {
    console.log('*'.repeat(i+1));    
}

Można śmiało wkleić powyższy fragment do konsoli, powinna pojawić się piramida z gwiazdek:

*
**
***
****
*****

Zabawy z narzędziami dla programistów w Chrome na stronie facebook'a

C

C wymaga kompilatora i sprawa nie jest taka prosta jak w przypadku JavaScript, jednak jest kilka kompilatorów online jeden z nich możesz znaleźć tutaj: https://www.onlinegdb.com/online_c_compiler.

Kompilator działa naprawdę szybko i aż żal bierze, że ten, który mamy na komputerze pozostaje za nim daleko w tyle. Jak myślisz, dlaczego? Możesz wkleić poniższy kod, aby uzyskać ten sam efekt co w przypadku konsoli JavaScript

#include <stdio.h>

int main()
{

    int i = 0, j;

    for (i; i < 5; i++) {
        for (j = 0; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

PHP

Podobnie jak w przypadku C, dostępne są parsery online, jednen z nich można znaleźć pod tym linkiem: http://sandbox.onlinephpfunctions.com/

foreach (range(1, 5) as $i) {
    echo str_repeat('*', $i), "\n";
}

HTML + CSS + JS

https://jsfiddle.net jest bardzo znanym narzędziem wśród web developerów, pozwala na proste przedstawienie konceptów, demonstrację rozwiązań, a także dzielenie się rozstrzygnięciami problemów. To narzędzie oferuje naprawdę spore możliwości, można powiedzieć, że jest to online IDE. Tutaj link do mojego jsFiddle, który zrobiłem, aby zademonstrować jak działa to narzędzie: https://jsfiddle.net/cbvwyars/.

Przykład użycia jsFiddle

Java

Taka sama historia jak z kompilatorem online dla C, dostępny jest kompilator do Java np. https://www.jdoodle.com/online-java-compiler.

public class MyClass {
    public static void main(String args[]) {

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }    
    }
}

Nie jest jednak taki szybki jak ten od C… Ciekawe dlaczego? :D

Czego brakuje?

Zademonstrowane narzędzia mogą pomóc sprawdzić coś bez konieczności uruchamiania całego środowiska. Czasami obecny stan kodu, który mamy jest bardziej rozgrzebany niż pościel na łóżku i nie chcemy nic ruszać, bo jesteśmy w trakcie twórczego procesu. Wtedy taki "kompilator na boku" może załatwić robotę. Jednak nie przetestujemy na takich narzędziach bardziej skomplikowanych rzeczy.

Czy napotkałeś/napotkałaś kiedyś problem, którego nie dało się sprawdzić w takim przenośnym środowisku? Jest według Ciebie jakiś język, którego nie można w ten sposób sprawdzić?

Dodano: 2018-01-30 08:46 przez Piotr Poźniak

poradnik , ewaluacja , przykłady , c , js , javascript , java , php , html , css ,
Piotr Poźniak
O autorze:

Programuję od ponad 15 lat. Prowadzę software house. Angażuję i zachęcam wszystkich do programowania w ramach inicjatywy Programowanie jest łatwe.