Eine große Übertragungsfunktion oder getrennt über mehrere Funktionen

Ist es besser, die gesamte Logik innerhalb der Übertragungsfunktion zu belassen oder sie wie ich auf drei Funktionen aufzuteilen? Vielen Dank im Voraus!

function transfer(address _to, uint256 _value) public returns (bool) {

    require(_to != address(0));
    if (updateBalance(_to, _value)) { 
        if(allowedContracts[_to]) {
            BIHReceiver receiver = BIHReceiver(_to);
            receiver.tokenFallback(msg.sender,_value);
        }
        Transfer(msg.sender, _to, (_value.sub(feePaid)));
        Transfer(msg.sender, feeWallet, (feePaid));
    }
    return true;
}


function updateBalance(address _to, uint256 _value) public returns (bool) {

    require(_to != address(0));
    if (checkBalance(_to,_value)) {
        uint256 feePaid = (_value.mul(fee).div(10000);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value.sub(feePaid));
        balances[feeWallet] = balances[feeWallet].add(feePaid);
        return true;
    }
} 

function checkBalance(address _to, uint256 _value) public returns (bool) {

    require(_to != address(0));
    if(_value > 0) {
        if(balances[msg.sender] == 0) {
            addresses[indexes[msg.sender]] = addresses[lastIndex];
            indexes[addresses[lastIndex]] = indexes[msg.sender];
            indexes[msg.sender] = 0;
            delete addresses[lastIndex];
            lastIndex--;
        }
        if(indexes[_to]==0) {
            lastIndex++;
            addresses[lastIndex] = _to;
            indexes[_to] = lastIndex;
        }
        return false;
    } else {
        return true; 
    }
}

Antworten (1)

Im Allgemeinen machen Entwickler aus Gründen wie (aber nicht beschränkt auf):

  1. Es erhöht die Lesbarkeit, wodurch es einfacher wird, der Absicht zu folgen
  2. Es ist einfacher, Funktionen mit weniger Nebenwirkungen zu testen
  3. Es ist einfacher, TROCKEN zu bleiben und potenziell katastrophale Fehler zu vermeiden, die auf kleine Unterschiede in dem zurückzuführen sind, was derselbe Code sein sollte

Ich würde sagen, verteilt es auf mehrere Funktionen.