Saya tidak berpikir dia berarti "desain buruk" seperti "praktek buruk." Secara umum, aplikasi web harus tanpa kewarganegaraan mungkin. Meskipun, misalnya, Anda mungkin perlu mengetahui informasi pengguna untuk mengotorisasi tampilan halaman, informasi itu dapat disimpan pada mesin klien dalam bentuk cookie dan server hanya memvalidasi informasi pengguna setiap waktu.
Itu akan ideal, tetapi Anda tidak selalu dapat mengandalkan klien untuk dapat menyimpan cookie. Selain itu, ini melibatkan memvalidasi pengguna dalam mode tanpa kewarganegaraan, yang berpotensi melibatkan permintaan informasi dari database untuk permintaan halaman sederhana. Sering kali lebih mudah menyimpan informasi seperti itu di sesi.
Namun, begitu Anda telah melewati Rubicon, banyak programmer yang tergoda untuk tidak hanya menyimpan informasi otentikasi dalam sesi tetapi banyak hal lainnya juga. Ini adalah anti-pola dan cenderung membuat aplikasi web Anda sangat bergantung pada keadaan, yang memang seharusnya dihindari.
Beberapa programmer akan bergantung pada teknologi seperti Spring (jika Anda menggunakan Java) untuk menguraikan apa yang seharusnya menjadi kekacauan ketergantungan, tapi saya berpendapat bahwa itu hanya membuatnya lebih mudah untuk membuat dependensi daripada menghilangkannya. Teknologi seperti itu seharusnya membantu pengembangan Anda, tidak membuat anti-pola Anda kurang menjadi masalah.
Oleh karena itu, aturan praktis yang baik adalah bahwa jika Anda dapat menulisnya tanpa kewarganegaraan, mungkin itu adalah ide yang lebih baik untuk melakukannya atau Anda berisiko jatuh ke dalam perangkap ini. Jelas Anda akan mengalami situasi di mana ini diperlukan, tetapi secara umum, Anda hanya harus menyimpan informasi yang jika tidak akan sulit diperoleh kembali.