如果我說,「程式設計,與程式設計無關」,你一定覺得不可思議;那,你又如何理解網上那句非常流行的名言,「我愛你,與你無關」?
講乙個真實的故事吧,我原來在企業的時候,單位有個專職翻譯,他曾把乙個有2萬詞彙量的詞典交給我,讓我隨便問。我問了,他真的乙個都沒記錯。
後來,總工把乙個裝置說明材料交給我,讓我翻譯,我乙個晚上,9點—12點,3個小時,很輕鬆地翻好,交給了總工。(為此,總工欣賞了我好幾年,直到我調走。)
後來,我又知道,在我之前,這個翻譯,已經翻了乙個月了,沒翻出來......
難道,翻譯,與翻譯無關????
我英語,自然爛得很,這個,不是謙虛;而這套設定,我差不多已經玩爛了,這個也不是謙虛!
這是讓我翻這個使用說明,我用了三個小時,如果讓我自己寫乙個使用說明,我乙個小時都不需要!
這個故事告訴我,玩爛乙個東西,再寫這個東西,比什麼都重要。
現在,讓我們玩玩這個登入系統吧......
一、登入系統的使用邏輯
執行一下這個登入程式,其實邏輯是這樣的:
1、在文字框如分別輸入使用者名稱和密碼;
2、點選「註冊」按鈕,如果:
(1)使用者名稱、密碼正確,就跳轉到了default.aspx;
(2)使用者名稱或密碼不正確,就彈出乙個訊息框,提示使用者名稱或密碼錯誤。
二、登入系統的實現邏輯
熟悉了登入系統的使用邏輯,也就有了它的實現邏輯:
在點選「登入」按鈕時,
1、獲取使用者名稱和密碼對應文字框中輸入的值txtusername.text和txtpassword.text;
2、查詢資料庫netshop中表users中使用者名為txtusername.text,密碼為txtpassword.text的項,獲得乙個sqldatareader;
3、判斷這個sqldatareader是否為空,如果:
(1)sqldatareader不為空,就跳轉到default.aspx;
(2)sqldatareader為空,就彈出訊息框,提示「使用者名稱或密碼錯誤!」。
很多語言都有登入系統,這些登入的邏輯,都是這個邏輯。也就是說,你按照這個邏輯程式設計,而與使用什麼語言編,一點關係都沒有,不是嗎??
有人已經看出來了,這個邏輯,其實就是「演算法」,譚浩強早就指出「演算法才是程式設計的靈魂」!
(其實,我更喜歡把這種所謂的演算法,叫做「解決問題的步驟」)
下面我們看看,asp.net使用c#是怎麼實現這個邏輯的:
[csharp]view plain
copy
?protected
void
btnlogin_click(
object
sender, eventargs e)
rdr.close();
}if
(blisauthenticated ==
true
)
else
} 這個**裡,我使用了using()結構;使用了比較成熟的登入系統特有的乙個變數blisauthenticated來判斷是否登入成功;使用了類configurationmanager從web.config中讀取連線字串。如果,我直接使用前面講的最基本的資料庫連線**,你會看到,那將會是直接使用計算機語言來翻譯我前面的實現邏輯了。
這個登入系統的結構,在這裡,就略一下吧......
寫詩的人常會說,「功夫在詩外」,相信這句話吧,程式設計,功夫在程式設計之外......
我愛你與你無關
前幾天,偶然看到乙個電視談話節目,主持人講了一件軼聞,說是在李敖先生訪問大陸的幾天裡,細心的記者發現有一位女孩,總是出現在李敖先生活動的現場 不管在哪座城市,李敖演講,她在台下靜靜地聽 李敖訪問,她在遠處靜靜地看 明顯是一位大師的崇拜者。但她卻沒有像 追星族 們那樣,千方百計接近被崇拜者,也沒有做 ...
其他系統與domino系統單點登入的實現方式
其他系統與 domino 系統單點登入的實現方式 隨著企業中業務不斷增多,使用者處理不同的業務則需要頻繁的切換不同的系統進行操作,而使用者則需要記住各個系統的使用者名稱 密碼,頻繁的登入。如果各個系統間能夠進行單點登入,無疑會大大減少使用者重複輸入密碼的困擾。由於domino 系統相對比較封閉,其他...
單點登入系統的設計與實現方案
目的 對目前已有的 web 應用系統,和將來待開發的 web 應用系統系統進行整合,實現單點登入。要求 1.對已有的 web 應用系統不作大規模改造。2.不限制待開發的 web 應用系統的開發工具。3.不增加待開發系統的開發難度。分析 1.目前,已有的系統都各自維護自己的一套使用者庫,每個系統中的使...