愛提問題是對的,可是……

警告:本文乃我的主觀情緒極重的文章,不喜勿入。可是本文並不是diss任何人任何事,僅僅是但願提問者和回答者可以更加有效地溝通。提問者確定是無奈之下才會尋求幫助,可是回答者都有各自的事情,並不可能隨叫隨到給提問者回復,估計也只有Siri才能隨叫隨到,及時回覆。javascript

互相體諒,互相尊重也許是共同進步的關鍵所在!css

最近筆者一直在想一個問題,就是該如何問問題?java

說句不要臉的大實話,筆者挺自私的,並不喜歡回答問題,緣由有三:android

  • 有些問題明明能夠經過各類搜索軟件獲得問題,偏要找「人肉搜索引擎」。
  • 秉着負責任的態度,對待答案總要自行檢查一遍,雖然過程當中也可有收穫,奈何費時費力。
  • 自己工做挺忙,待學習的隊列已經排到美國了,期間看到問題,真心以爲煩躁。

能夠說上述三條理由都是筆者在爲本身這種自私的行爲開脫,可是要筆者不情不肯的回答一些「不是問題」的問題,憋屈啊。將心比心,由於知曉己所不欲勿施於人,因此筆者不多提問。即便提問也要斟酌再三,確認無誤,確保不是「惱人」的問題。那麼,究竟什麼樣的問題是「惱人」的,甚至「不是問題」的問題,什麼問題是「值得回答」的問題呢?ios

問題黑名單

首先來談談那些「惱人的」問題(如有雷同,純屬巧合):git

第一類:百度搜索

相信你們都遇到過,客氣的人會說這個不復雜,你能夠百度一下。,可是脾氣暴躁的人會說,這麼傻X的問題,你不會百度啊。這類語氣着實傷人,爲了防止我的的玻璃心受傷,就要避免一些「百度」的問題。github

百度問題分如下幾類:ajax

  • 最經典的莫過於api的問題,有關api的用法,百度吧。可是有個隱藏的api問題,就好比筆者想要實現某個功能,可是根本不知道用啥api,這個時候有好心人給了方向以後,就自行百度吧。
  • 0基礎的小白的問題,這一類問題,很難回答,相信不少好心人說着說着巴不得本身拿過來幫人家寫了算了。這個時候筆者推薦提問者先從基礎開始學吧,網上挺多零基礎的教程的。雖然說要對本身有所要求,但總不能還沒學會爬就要開始跑了吧。
  • 常見問題,好比CSS中經典的居中問題,佈局問題,自適應問題,相信網上應有盡有。相信你們已經回答地不想再回答了,並非說鄙視這類問題,並且乏了,真的乏了,估計已經回答了幾十遍同類問題了。

第二類:不知所云

每次遇到別人問,咦,這個怎麼沒出來呀?爲何報錯了呀?。這個時候筆者就想裝死,畢竟本人不住在瀏覽器,報錯和不出現的問題,就算當面調試也不必定可以立馬出答案。並且考慮到面子問題,萬一出不來會不會顯得筆者很渣?數據庫

不知所云分爲:canvas

  • 截圖或者一句話,沒有詳細說明,沒有操做說明,沒有想要的結果說明。好比爲何ajax獲取不到數據,這一類好心人會一步步引導出真正的問題,像筆者這樣的就直接無視了,甚至會diss,「誰XXX知道你想問什麼」(乖寶寶們不要學習)。
  • 直接丟出一個報錯,報錯的緣由千千萬種,不瞭解對方項目的該如何,這個時候又要回到第一類問題了,徹底能夠百度如下錯誤的成因,而後根據本身的項目分析。此類問題非經驗豐富的,基本get不到提問的點。

第三類:道德綁架

在線等,急

此類問題一概不答。至於緣由,感受筆者不幫助找到正確答案,彷彿就是個大壞蛋,甚至自我懷疑。

第四類:要你何用

這一類算是筆者的親身經歷吧,可能脾氣太好了。在大學的時候,一個小學弟來問筆者數據庫的問題。且不說筆者當時並不熟悉,如今筆者也是個渣渣。小學弟問了不少問題,筆者都沒答上來,最後他來了一句要你何用。真棒,學姐沒用!題外話,說者無意聽者有心,這對筆者當時的幼當心靈形成了極大的傷害,還好筆者沒心沒肺,沒多久就恢復了。

對於問問題,且不說虛心討教,還要充大佬的,不尊重人的,門在那邊,出門左拐不送,不伺候。

問問題是門藝術

這裏筆者想要借用StackOverflow的一些規範,來總結下如何問出討喜的問題。

先給出一個錯誤示範:

大佬,我碰到了XXX問題,不知所措。(謝謝,大佬比你更不知所措~)
複製代碼

搜索搜索再搜索!

問問題以前,請再三地搜索,即便找不到有用的信息,也能夠對比你的問題和其餘人的不一樣,同時總結出一些結果,即便如今無用,之後也許用得上,這也是一種學習過程。

詳細說明

詳細說明你的問題,一上來就放出一堆代碼,反正筆者看到幾十行的代碼都是直接遛的。用簡短的語言,整理邏輯關係,詳細說明。

必要時給出實列代碼

如今有不少在線的code play的網站,好比codepen(my favourite),jsfiddle,實在不行貼上github地址。這樣大幅度減小了對方瞭解問題的時間。

舉個例子,筆者的模版

提出問題:
大佬,我碰到了XXX問題。我但願的結果XXX,然而預期的結果XXX。

處理過程:
我搜索了不少資料(代表你搜索過了),網上有一些和個人問題很像,可是有些區別,我是這樣地,他是那樣的。(給對方畫一個範圍,告訴對方你的問題在哪個區域)。
我試過了1,2,3,4……種方法(最好講明每一種方法的利弊,節約對方的勞動力)。

客套一下:但願大佬能給我指一條明路。(因人而異,看我的個性,筆者喜歡謙虛一點,畢竟是請求對方幫忙。)
複製代碼

相信筆者,通過這一番的思考以後,本身就能找出答案了。

解惑者

那麼遇到一個問題,該如何回答,畢竟你們都有作新人的時候,老是要受點挫折才能成長爲大佬。對於萌新仍是要有「慈悲爲懷」的。

此處再次借用StackOverflow地規範,有關於態度地,也許對於解惑者更重要的是一種態度。

錯誤示範:

這個問題百度下就能夠了。
我都不知道你要問什麼。
(雖然有時候有些問題確實一言難盡,可是此類的回答語氣仍是不太好的。)

複製代碼

和藹地提出——你能夠去百度了

第一種,優雅地告訴對方,請百度:

這個問題其實難點在於XXX,是很常見,推薦搜索一下,應該就會有許多解答。

第二種,手頭上有合適的大佬文章,拋出連接:

這個連接裏面的內容,感受和你的問題很像,能夠參考下。

友好地告訴對方我不知道你在說啥

我沒法get到你的問題點。給出對應的推理,是XXX這個緣由嗎?仍是說你想要XXX?

避免帶有挑釁的語氣

好比不屑,侮辱,甚至人身攻擊,這裏就不舉例子了,不合適。

優雅地回答!讓萌新再也不瑟瑟發抖。

筆者解決問題的過程

  • 首先是StackOverflow搜索,這裏能找到答案的機率最大,並且用英文搜索,更加精準,不是筆者推崇英文,而是中文的表述過於複雜,不少名詞有多個解釋。
  • 找不到問題再去google,一樣關鍵字刪選。
  • 整理解決方案,一個個調試,整理每次失敗的過程。
  • 沒法解決能夠換一個思路再去解決,此路不通,那麼就繞路而行。
  • 最後的最後,整理解決過程,找大佬解決。

筆者曾經問過一個關於video在微信上自動播放的問題,雖然最後並未找到更簡單的方式。你們能夠參考一下。

一個問題的產生過程

問題提出: 須要在微信上面,自動播放視頻。可是手機爲了用戶體驗着想,都不容許自動播放,因此該如何繞路而行了。我並不想使用常規的摸一摸播放,順便提一下在安卓上面必定要click事件才能點開視頻……

問題的痛點: 搜索了多方面的信息發現一個噩耗,不管什麼樣的播放都須要用戶的操做支持。並且ios和android的支持不一樣。首先蘋果爲了代替gif,雖然支持靜音狀態下的播放,可是我沒法保證音頻和視頻的一個同步執行,老是有個微微的延遲或者提早,並且音頻也須要摸一摸。安卓?不提了……

可行的方案: 終於找到了解決方案,然而卻須要利用ffmpeg轉流,而後經過jsmpeg將轉化以後的流經過canvas等技術播放出來。這能同時解決安卓和蘋果的自動播放問題。不過學習成本太高,須要掌握ffmpeg的基本操做以及jsmpeg的用法。

請求: 不知道你們有什麼更加簡易的解決方法?

當筆者寫整理完問題的時候,彷彿已經知道了最終答案,只是抱着試一試的心態去問一下也許有大神就知道呢?同時這也算是一個小小的經驗分享吧,該踩的坑都踩了。相信你們有一個自個人思考過程答案迎刃而解。

(感受只有加粗你們才能看到筆者的請求,到如今都沒有收到更加簡單的方法,要是有大神知道請留下您寶貴的建議!)

筆者回答問題的過程

讓筆者找一個在stackoverflow回答的例子

提問的寶寶很客氣,原文大概是這樣的:

有關於經過js運行css的問題。

謝謝你們花時間看個人問題,任何幫助我都會感謝你們。

我有如下一串代碼:

.middle_n.expand.remove
{
 animation: contractm 0.3s forwards;
 transform-origin: 0 75px;
 height:200%;
 animation-delay: 1.3s;
}

@keyframes contractm 
{
 0%{}
 100%{transform:translate(147.8%,100%) rotate(-16.75deg);}
}
複製代碼

我但願可以傳遞一個動態的值,讓這個轉起來。我該如何作。經過js能夠實現多個動畫嗎?

再次感謝。

雖然是個新手,可是提問點很清晰。恰好筆者擅長該領域,因而就給出了回答。


筆者的回答:

在我看來,若是你但願控制你的動畫,個人簡易是你可使用js控制你的元素的style。由於animation是完成一系列的動畫的。

而且有一個很是強大的css屬性,叫作css變量,你能夠經過這個連接獲得更詳細的解釋

而後給出筆者的例子:

const rotate=document.getElementById("rotate")
let r=0
rotate.addEventListener("click",()=>{
  r += 10
  rotate.style.setProperty("--rotate", r+"deg");
})
複製代碼
#rotate{
  --rotate:0deg;
  background:pink;
  width:100px;
  height:100px;
  transform:rotate(var(--rotate));
  transition:transform 1s;
}
複製代碼

固然,若是你但願一系列的動畫,你能夠查看這裏。設置一系列的動畫很簡單。


本文的主觀性很強,若是有感到不適的地方,筆者道歉。筆者只是爲了你們可以有個更好的學習氛圍。少一些爭論,多一些討論。好好學習,每天向上。

怕被打,溜了溜了。

不知道如何安放的文章,筆者應該怎麼添加標籤呢?

相關文章
相關標籤/搜索