Ich denke nicht, dass er "schlechtes Design" so sehr meinte wie "schlechtes Üben". Im Allgemeinen sollte eine Webanwendung so zustandslos wie möglich sein. Auch wenn Sie zum Beispiel möglicherweise Benutzerinformationen benötigen, um das Anzeigen von Seiten zu autorisieren, können diese Informationen in Form eines Cookies auf dem Client-Computer gespeichert werden, und der Server überprüft die Benutzerinformationen einfach jedes Mal.
Das wäre ideal, aber Sie können sich nicht immer darauf verlassen, dass der Kunde Cookies speichern kann. Darüber hinaus muss der Benutzer in zustandsloser Weise validiert werden, was möglicherweise das Abfragen von Informationen aus der Datenbank für eine einfache Seitenanforderung umfasst. Oft ist es nur einfacher, solche Informationen in der Sitzung zu speichern.
Sobald Sie jedoch das Rubikon überschritten haben, sind viele Programmierer versucht, nicht nur Authentifizierungsinformationen in der Sitzung zu speichern, sondern auch viele andere Dinge. Dies ist ein Anti-Pattern und macht Ihre Webanwendung in der Regel stark vom Status abhängig, der eigentlich vermieden werden sollte.
Einige Programmierer würden sich auf Technologien wie Spring stützen (wenn Sie Java verwenden), um das zu entwirren, was ansonsten ein Durcheinander von Abhängigkeiten wäre, aber ich würde argumentieren, dass dies das Erstellen von Abhängigkeiten nur einfacher macht, als sie zu beseitigen. Solche Technologien sollten Ihre Entwicklung unterstützen und Ihr Anti-Pattern nicht weniger zum Problem machen.
Daher ist eine gute Faustregel, dass es wahrscheinlich eine bessere Idee ist, dies zu tun, wenn Sie es zustandslos schreiben können, oder Sie riskieren, in diese Falle zu tappen. Natürlich werden Sie in Situationen geraten, in denen dies erforderlich ist, aber im Allgemeinen sollten Sie nur Informationen speichern, die ansonsten schwer wieder abzurufen wären.